范少华的技术学习 Unity Coder

Unity生命周期

2019-08-28
FSH

简介

  生命周期也是消息机制,当满足条件时,unity引擎自动调用的函数

流程

  Awake() -> OnEnable() -> Start() -> FixedUpdate() -> Update() -> ateUpdate() -> OnGui() -> OnDisable() -> OnDistroy()

详解

  • 初始阶段

    Reset():当拖动脚本到组件栏的时候,还有物体被reset的时候会调用

    Awake():脚本挂载在物体上,物体载入时立即调用一次且只执行一次,常用于游戏开始前进行初始化(无论当前组件是否启用)

    OnEnable(): 每当脚本对象启用时调用(可重复调用)

    Start():脚本挂载在物体上,物体载入且 脚本对象启用时被调1次。 常用于数据或游戏逻辑初始化,执行时机晚于Awake

  • 物理阶段

    FixedUpdate():脚本启用后,固定时间被调用,适用于对游戏对象做物理操作,跟物理相关的(设置更新频率:Edit -> Project Setting -> Time -> Fixed Timestep值,默认为0.02s)

    特性:不受渲染帧的影响,渲染时间固定,受时间缩放Time.timeScale的影响

    OnCollisionXXX碰撞:挂载脚本的对象必须有Rigidbody和Collider,且和另一个Collider物体发生接触;

      OnCollisionEnter:开始碰撞 -> OnCollisionStay:碰撞中 ->  OnCollisionExit:碰撞结束
    

    OnTriggerXXX触发:挂载脚本的对象必须有Collider,且和另一个Collider物体发生接触;

       OnTriggerEnter:开始触发 -> OnTriggerStay:触发中 ->  OnTriggerExit:触发结束
    
  • 输入事件

    OnMouseEnter():鼠标移入到当前 Collider 时调用;

    OnMouseOver():鼠标经过当前 Collider 时调用;

    OnMouseExit():鼠标离开当前 Collider 时调用;

    OnMouseDown():鼠标按下当前 Collider 时调用;

    OnMouseUp():鼠标在当前 Collider 上抬起时调用。

  • 游戏更新

    Update():每帧(约0.02s)更新,特性:受渲染帧影响,机器性能越高,渲染帧间隔越短,时间不固定

    LateUpdate():在 Update 函数被调用后执行,适用于跟随逻辑。

  • 结束阶段

    OnDisable():对象变为不可用或附属游戏对象非激活状态时此函数被调用;

    OnDestroy():当脚本销毁或附属的游戏对象被销毁时被调用;

    OnApplicationQuit():应用程序退出时被调用。

  • 流程图

    20200219103309215.png


Similar Posts

Comments