Awake —> OnEnable —> Start —> FixedUpdate —>Update —> LateUpdate—> OnGUl —> OnDisable —> OnDestroy
编辑器->初始化->物理系统->输入事件->游戏逻辑->场景渲染->GUI渲染->物体激活或禁用->销毁物体->应用结束
Reset:点击编辑器面板的Reset按钮或者首次添加该组件时被调用
Awake:用于在游戏开始之前初始化游戏变量或游戏状态,在脚本整个生命周期仅调用一次,当脚本设置为不可用时,运行时Awake仍会执行一次。Awake在所有对象被初始化之后调用,所以可以安全的和其他对象对话或者用GameObject.FindWithTag来搜索。每个游戏物体上的Awake随机调用。因此应该用Awake设置脚本间的引用,并用Start来传递信息。Awake总是在Start之前被调用,它不能用来执行协程。
OnEnable:当对象变为可用时调用。在同一周期中可以反复地发生!
Start:只在脚本示例被启用时调用一次。
FixedUpdate:固定帧调用(?)渲染帧执行,渲染效率低下的话渲染次数也会下降,处理Rigidbody。
Updete:每帧调用。
LateUpdate:在Update之后每帧调用,用于更新游戏场景和状态,和摄像机相关的更新。
OnGUI:每帧调用好几次(每个事件一次)渲染和处理GUI事件时调用。如果enabled属性设为false,OnGUI()将不会被调用。
OnDisable:不能用于协程,当对象变为不可用或非激活状态时调用。
OnDestroy:当对象被销毁时调用。
OnApplicationQuit:当用户停止运行模式时在编辑器中调用。当web被关闭时在网络播放器中被调用。
记顺序:AES→三个Update→PQDD
感谢作者:【Unity】Unity 生命周期-CSDN博客
碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。
当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;
当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。
如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器。
两个物体都必须带有碰撞器Collider,其中一个物体还必须带有Rigidbody刚体。
mono是.net的一个开源跨平台工具,就类似java虚拟机,java本身不是跨平台语言,但运行在虚拟机上就能够实现了跨平台。
.net只能在windows下运行,mono可以实现跨平台编译运行,可以运行于Linux,Unix,Mac OS等。
是一种数学结构,用来表达旋转运动。一个四元数通常由一个实部和三个虚部构成,可以表示为q=a+bi+cj+dk,其中a是实部,b、c、d是虚部,i、j、k是虚数单位。
是一种常用的旋转表达方法,常用于描述物体的朝向和旋转。欧拉角可以分为三个分量,分别是绕xyz轴的旋转角度。
四元数⽤于表示旋转,对旋转⻆度进⾏计算时⽤到四元数
相对欧拉⻆的优点:
1)能进⾏增量旋转
2)避免万向锁
3)给定⽅位的表达⽅式有两种,互为负(欧拉⻆有⽆数种表达⽅式)
Rigidbody具有完全真实物理的特性,而CharacterController可以说是受限的的Rigidbody,具有一定的物理效果但不是完全真实的。
localPosition :自身坐标系,相对于父级的位置
Position :世界坐标系中的位置
在游戏运行时实例化,prefab相当于一个模板,对你已经有的素材、脚本、参数做一个默认的配置,主要用于经常会用到的物体做成一个集合方便反复使用,以便于以后的修改,同时prefab打包的内容简化了导出的操作,便于团队的交流。