学习各种方法,了解方法调用的时机
- Unity脚本从唤醒到销毁的过程
- 消息:当满足某种条件Unity引擎自动调用的函数
- 又称必然事件
初始阶段
- Awake 唤醒:
当物体载入时立即调用一次;
常用于在游戏开始前进行初始化,可以判断当满足某种条件执行此脚本 this.enable=true
执行时机: - OnEnable 当可用:
每当脚本对象启用时调用。可调用多次 - Start 开始:
物体载入且脚本对象启用时被调用一次;
常用于数据或游戏逻辑初始化,执行时机晚于Awake。
物理阶段
- FixedUpdate 固定更新:
脚本启用后,固定时间被调用,适用于对游戏对象做物理操作,例如移动等,不会受到渲染影响。
设置更新频率:“Edit”–>“Project Setting”–>“Time”–>"Fixed Timestep"值,默认为0.02s - OnCollisionXXX 碰撞:
当满足碰撞条件时使用。 - OnTriggerXXX 触发:
当满足触发条件时调用。
输入事件
- OnMouseEnter 鼠标移入:
鼠标移入到当前 Collider 时调用。 - OnMouseOver 鼠标经过:
鼠标经过当前 Collider 时调用。 - OnMouseExit 鼠标离开:
鼠标离开当前 Collider 时调用。 - OnMouseDown 鼠标按下:
鼠标按下当前 Collider 时调用。 - OnMouseUp 鼠标抬起:
鼠标在当前 Collider 上抬起时调用。
物体需有Box Collider组件
游戏逻辑
- Update 更新:
脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关,执行间隔不固定。
适合处理游戏逻辑,为了简化代码,通常把FixedUpdate中的代码也放入Update - LateUpdate 延迟更新:
在 Update 函数被调用后执行,适用于跟随逻辑。
Update与LateUpdate执行在同一帧
场景渲染
- OnBecameVisible 当可见:
当 Mesh Renderer 在任何相机上可见时调用。 - OnBecameVisible 当不可见:
当 Mesh Renderer 在任何相机上都不可见时调用。
结束阶段
- OnDisable 当不可用:对象变为不可用或附属对象非激活状态时此函数被调用。
- OnDestroy 当销毁:
当脚本销毁或附属的游戏对象被销毁时使用。 - OnApplicationQuit 当程序结束:
应用程序退出时被调用。