-
1
Awake
方法在MonoBehavior
创建后立即执行,Start
在Monobehavior
创建后在该帧Update
之前,在该MonoBehavior.enabled == true
的情况下执行。Awake
–>OnEnable
->Start
,OnEnable
在同一周期中可以反复地发生。 -
2 协同程序
在主线程运行的同时开启另一段逻辑处理,协助当前程序的执行,协程很像多线程,但不是多线程,Unity 的协程是在每帧结束之后去检测yield
的条件是否满足。 -
3 碰撞器和触发器
碰撞器是触发器的载体,触发器是碰撞器身上的一个属性。当Is Trigger == false
时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit
函数,处理碰撞事件;当Is Trigger == true
时,碰撞器被物理引擎忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit
函数,处理接触事件。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过某个空间某个区域就可以用触发器 -
4 物体碰撞的必要条件
两个物体都必须带有碰撞器(Collider)
,其中一个物体还必须带有Rigidbody
刚体,而且必须是运动的物体带有Rigidbody
脚本才能检测到碰撞。 -
5
ArrayList
和List
ArrayList
存在不安全类型(ArrayList
会把所有插入其中的数据都当做object
来处理),装箱拆箱的操作费时,List
是接口,ArrayList
是一个实现了该接口的类,可以被实例化 -
6 在不同工程间安全地迁移asset数据(三种方法)
1.将Assets
目录和Library
目录一起迁移
2.导出包,export Package
3.用unity
自带的assets Server
功能 -
7
unity
延时方法Invoke
和InvokeRepeating
-
Invoke
Invoke(methodName: string, time: float): void;
methodName :表示方法名
time:表示延时执行时间
-
InvokeRepeating
InvokeRepeating(methodName: string, time: float, repeatRate: float): void; methodName:方法名 time:多少秒后执行 repeatRate:重复执行间隔
- 还有两个重要的方法:
IsInvoking
:用来判断某方法是否被延时,即将执行
CancelInvoke
:取消该脚本上的所有延时方法
- 还有两个重要的方法:
-
网友评论