👨💻个人主页:@元宇宙-秩沅
hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 秩沅 原创
收录于专栏 unity 实战系列
⭐相关文章⭐
———————————————————
-关于游戏剧情模式中用到的基础简单API
-控制游戏人物移动的细节到底有多少?
-坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)
————————————————————
文章目录
- 一,生命函数
- 👨💻(1)Reset()://重置函数,
- 👨💻(2) Awake(); //苏醒函数
- 👨💻(3)OnEnable(); //组件调用函数
- 👨💻(4)Strat():
- 👨💻(5) UpData() ;
- 👨💻(6)LateUpate():
- 👨💻(7)OnDisable():
- 👨💻(8)OnApplicationQuit()
- 👨💻(9)OnDestroy();
- 二,API 之--面向对象篇
- 👨💻👍1.创建物体的三种方式
- 👨💻👍2.游戏物体的获取和查找
- 获取
- 查找
- 失灵
- 👨💻👍3.继承
- 三,API 之--transform组件篇
- 👨💻👍1.transform的各种引用
- 👨💻👍2.游戏物体的自身方向和世界轴方向
- 👨💻👍3.用transform组件来进行查找(包含索引查找)
- 四,API 之--Vector实质
- 👨💻👍1.Vector2结构体的静态变量
- 👨💻👍2.Vector2 结构体的成员变量
- 👨💻👍3.索引器的格式和存在的目的
- 👨💻👍4.Vector2的公共函数-Equrls()
- 👨💻👍5,Vector2的静态方法
- 五,API 之--随机类
- 👨💻👍1,随机类的静态变量
- 👨💻👍2.随机类的静态函数
- 六,动画基础
- 七,bug情况以及处置
- 👨💻👍1.中文显示乱码现象的解决措施
- 👨💻👍2.版本中存在老包升级情况
- 👨💻👍3.printf 和 Debug.Log的区别
一,生命函数
👨💻(1)Reset()://重置函数,
调用情况和时间:
编译器不运行的情况下 和 使用脚本组件Reset功能的时候, 挂脚本的时候
调用次数: 1次
👨💻(2) Awake(); //苏醒函数
调用情况和时间:
1.点击运行的时候
2.组件从失灵到激活的时候,但只调用一次
3.Instantiate方法调用的时候
调用次数: 1次
👨💻(3)OnEnable(); //组件调用函数
调用情况和时间: 组件从失灵到激活的时候,可多次实现
调用次数:只要组件有失灵到激活的状态就可调用 ,
👨💻(4)Strat():
调用情况和时间: 当游戏物体被激活,或者脚本组件被激活时调用 , (点击运行的时候也是会被激活)
调用次数: 1次
👨💻(5) UpData() ;
调用情况和时间: 在以上生命周期函数之后,每帧调用一次
调用次数: 大概每秒60次左右
变量赋值生效顺序:
变量声明直接赋值 > 检视面板赋值 > Awake > Enable > 外部赋值 > Start
👨💻(6)LateUpate():
调用情况和时间: 在Update调用之后,并且也是每秒60帧左右(适用于物体移动后的视角跟随)
调用次数: 大概每秒60次左右
👨💻(7)OnDisable():
调用情况和时间: 和OnEnable差不多,但是Disable是组件从完好到失活的状态, (相当于关闭组件的时候)
调用次数: 组件从激活到失灵的时候调用(二者前提是在游戏运行的时候)
👨💻(8)OnApplicationQuit()
调用情况和时间: 当所有游戏物体退出时调用,适用于打包的时候
调用次数: 满足以上情况便调用
👨💻(9)OnDestroy();
调用情况和时间: 适用于物体的销毁,删除,以及游戏的停止退出时
调用次数: 满足以上情况便调用
二,API 之–面向对象篇
👨💻👍1.创建物体的三种方式
1.new 构造函数
2.instantiate 实例化方法
3.Gameobject .CreatPrimtive(Primitve Type.xx);
👨💻👍2.游戏物体的获取和查找
获取
- 1.this
- 2.通过游戏物体的标签获取 GameObject.Label = ''yyy";
- 3.通过游戏物体的名字获取 GameObject.name = ''yy";
1.子对象的获取
- 1.transform.Getchild();
- 2.transform.GetsiblingIndex() -----获取同级索引(查找自已是父亲的第几个儿子)
2.父对象的获取
- 1.transform.parent();
查找
- 1.GameObject,Find()-----按照名字查找游戏对象 ,用太多会降低性能
- 2.GameObject,FindobjectType<>();------按照组件名来查找游戏物体
- 3.GameObject.FindGameObjectwithTag()------按照游戏物体标签来查找游戏物体
失灵
- 1.xx.SetActive(false); --------应用于游戏物体xx为GameObject类型继承自Object类
使得相应的游戏物体失灵 - 2.xx.enable = fasle;-----------应用于游戏物体的组件xx为组件的类型,继承为Copment类
使得相应游戏物体的组件失灵
👨💻👍3.继承
常见类的继承关系:
自己创建的类 -> MonoBehavair->Behavir->Conpment->Object
三,API 之–transform组件篇
👨💻👍1.transform的各种引用
transform.position ----游戏物体trans组件的世界位置信息
transform.Rotation----游戏物体的四元旋转信息
transform.enlerAugle- —游戏物体的欧拉角的信息(也就是Inspactor面板中的Rotation信息)
transform.localposition/localRotion/localenleAugle--------表自身的自身信息
👨💻👍2.游戏物体的自身方向和世界轴方向
针对自身:
transform.forword ----向前Z轴方向
transform.up------向上y轴方向
transform.right----向右x轴方向
针对世界:
vector.XX…
👨💻👍3.用transform组件来进行查找(包含索引查找)
Debug.Log(“被创造的游戏物体的世界坐标位置是”+xx.transform.position);
Debug.Log(“当前transform组件挂载的游戏物体对象的名字是”+transform.name);
Debug.Log(“当前transform组件挂载的游戏对象的子对象的数量”+transform.childCount);
Debug.Log(“当前游戏物体的世界四元旋转值为”+transform.rotation);
Debug.Log(“当前游戏物体的自身大小为”+transform.localScale);
Debug.Log(“当前游戏物体的自身位置为” + transform.localPosition);
Debug.Log(“当前游戏物体的自身四元旋转位置为”+transform.localRotation);
Debug.Log(“当前游戏物体的世界欧拉角为”+transform.eulerAngles);
Debug.Log(“当前游戏物体的自身欧拉角为”+transform.localEulerAngles);
Debug.Log(“查找当前游戏物体的子对象的trans组件名称为” + transform.Find(“sboss”));
Debug.Log(“查找当前游戏物体的第一个子对象为” + transform.GetChild(0));
Debug.Log(“查找该游戏物体在父类中子对象的索引位置” + transform.GetSiblingIndex());
四,API 之–Vector实质
👨💻👍1.Vector2结构体的静态变量
1.Vector2.up // 以下的形式pint之后是 (X,y)
2.Vector2.down
3.Vector2.Left
4.Vector2,Riht
5.Vector2.one //单位化之后的值
6.Vetor2.zero // 原点的值
👨💻👍2.Vector2 结构体的成员变量
1.x
2.y
3.XX.normalized //返回 单位化的值
4XX.magnitude //返回该向量的模长
5.XX.sqrMagnitude //返回该向量 模长的平方
‘’‘’‘’‘’‘’‘’
👨💻👍3.索引器的格式和存在的目的
1,格式
访问修饰符 + 数据类型+ this [ 索引类型 index]
{
get
set
}
2.目的:
简化结构体或者类成员的引用 (简化代码),可向数组用下标那样调用成员
👨💻👍4.Vector2的公共函数-Equrls()
Equrls(); // 比较两个向量是否相等
用法 : XX1 . Equals( XX2 );
👨💻👍5,Vector2的静态方法
- 1.vector2.Angle(); 返回两个向量的夹角
- 2.vevtor2.Distance(): 返回两个点(向量)的距离
- 3.Vetor2.Lerp() ;返回两个向量的差值
- 4.Vecor.unlimitLerp() ; 限制向量的移动步频(可以理解为规定速度移动)、
-
5.Vector2.MoveTowards(): 匀速
-
6.vector2.max();
-
7.vector2.min();
-
8.vecotr2.smoothDamp();平滑阻尼随着时间的推移逐渐改变一个向量朝着期望的目标
五,API 之–随机类
👨💻👍1,随机类的静态变量
- ①随机出旋转数
Random.rotantion - ②随机出的欧拉角
Random.rotation.enluarAngles - ③随机出的欧拉角转四元数
Quteronion.luer.( Random.rotation.enluarAngles) - ④随机出的浮点数
Random.Vauler 范围是 【0,1) - ⑤按图形随机出数字 --应用于枪口的圆形子弹发射(FPS)
Random. insideUnitCircle
👨💻👍2.随机类的静态函数
- ①范围内的随机数
Random.range(0 ,4 ) 左闭右开->[ 0 , 4 )
Random.range( 0, 4f ) 左闭右闭 -> [ 0 ,4 ] - ②伪随机数设置状态
Random.InitState(1) 开启状态 - ③伪随机数
Random.range( 0 , 4 ) 左闭右闭 -> [ 0 , 4 ]
六,动画基础
1,ipg -> UI and 2D
( 直接将图集进行拖拽给对象) 变成动画
2,代码更改速度
animator .speed
3,代码实现动画的播放
animator.dispaly
4,代码设置过度参数
animator.Setfloat(“Speed”, 1 )
5,代码实现动画的过度
animator.CrossFade (“Walk” , 0.1f) __值越小过渡的越快444444
七,bug情况以及处置
👨💻👍1.中文显示乱码现象的解决措施
- unity-Hub–版本显示资源—Date------resouces------ScriptTempelet--------81(文件名)->可自定义初始化界面
👨💻👍2.版本中存在老包升级情况
- windows – packge Manager\
👨💻👍3.printf 和 Debug.Log的区别
(1)printf : 必须要继承,Monobehivar类
(2)Debug.Log:
1.Debug.LogWarning :显示警告、
2.Debug.LogError:显示错误
⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!