Unity 日常小记

  • 1 Awake 方法在MonoBehavior创建后立即执行,StartMonobehavior创建后在该帧Update之前,在该MonoBehavior.enabled == true 的情况下执行。Awake –>OnEnable->StartOnEnable在同一周期中可以反复地发生。

  • 2 协同程序
    在主线程运行的同时开启另一段逻辑处理,协助当前程序的执行,协程很像多线程,但不是多线程,Unity 的协程是在每帧结束之后去检测yield的条件是否满足。

  • 3 碰撞器和触发器
    碰撞器是触发器的载体,触发器是碰撞器身上的一个属性。当 Is Trigger == false 时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用 OnCollisionEnter/Stay/Exit函数,处理碰撞事件;当 Is Trigger == true时,碰撞器被物理引擎忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数,处理接触事件。如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过某个空间某个区域就可以用触发器

  • 4 物体碰撞的必要条件
    两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体,而且必须是运动的物体带有Rigidbody脚本才能检测到碰撞。

  • 5 ArrayListList
    ArrayList存在不安全类型(ArrayList会把所有插入其中的数据都当做object来处理),装箱拆箱的操作费时,List是接口,ArrayList是一个实现了该接口的类,可以被实例化

  • 6 在不同工程间安全地迁移asset数据(三种方法)
    1.将Assets目录和Library目录一起迁移
    2.导出包,export Package
    3.用unity自带的assets Server功能

  • 7 unity 延时方法 InvokeInvokeRepeating

    • Invoke
        Invoke(methodName: string, time: float): void;
      
      methodName :表示方法名
      time:表示延时执行时间
    • InvokeRepeating
      InvokeRepeating(methodName: string, time: float, repeatRate: float): void; methodName:方法名 time:多少秒后执行 repeatRate:重复执行间隔
      • 还有两个重要的方法:
        IsInvoking:用来判断某方法是否被延时,即将执行
        CancelInvoke:取消该脚本上的所有延时方法

你可能感兴趣的:(Unity 日常小记)