unity3D技术之事件函数的执行顺序[转]
unity3D技术之事件函数的执行顺序
转自http://www.yxkfw.com/?p=13703
在unity的脚本,有大量的脚本执行按照预先确定的顺序执行的事件函数。此执行顺序说明如下:
scene启动 (一次为每个场景中的对象) 时,会调用这些函数。
请注意对于对象添加到场景,所有脚本的清醒和 OnEnable函数将被调用之前启动、更新、 等统称为其中任何。当然,这不能强制执行时在游戏过程中实例化对象。 在第一帧更新之前
为对象添加到场景,开始将对所有脚本更新之前,调用函数等统称为其中任何。当然,这不能强制执行时在游戏过程中实例化对象。 帧之间
Update Order 当游戏逻辑和交互,动画,相机位置,等您要跟踪的时有几个不同的事件,您可以使用。常见的模式是执行大多数任务里面的更新功能,但也有其他可以使用的函数。
更新函数返回后运行正常的协程的更新。协同是一个函数,可以暂停其执行 (收益率),直到完成给定的YieldInstruction。不同用途的协同程序:
在你的场景中的所有活动对象上得到调用这些函数:
下面的关系图概述订购和重复事件函数在脚本的一生。 |
Update 当MonoBehaviour启用时,其Update在每一帧被调用。 LateUpdate 当Behaviour启用时,其LateUpdate在每一帧被调用。 FixedUpdate 当MonoBehaviour启用时,其 FixedUpdate 在每一帧被调用。 Awake 当一个脚本实例被载入时Awake被调用。 Start Start仅在Update函数第一次被调用前调用。 Reset 重置为默认值。 OnMouseEnter 当鼠标进入到GUIElement(GUI元素)或Collider(碰撞体)中时调用OnMouseEnter。 OnMouseOver 当鼠标悬浮在GUIElement(GUI元素)或Collider(碰撞体)上时调用 OnMouseOver . OnMouseExit 当鼠标移出GUIElement(GUI元素)或Collider(碰撞体)上时调用OnMouseExit。 OnMouseDown 当鼠标在GUIElement(GUI元素)或Collider(碰撞体)上点击时调用OnMouseDown。 OnMouseUp 当用户释放鼠标按钮时调用OnMouseUp。 OnMouseUpAsButton OnMouseUpAsButton只有当鼠标在同一个GUIElement或Collider按下,在释放时调用。 OnMouseDrag 当用户鼠标拖拽GUIElement(GUI元素)或Collider(碰撞体)时调用 OnMouseDrag 。 OnTriggerEnter 当Collider(碰撞体)进入trigger(触发器)时调用OnTriggerEnter。 OnTriggerExit 当Collider(碰撞体)停止触发trigger(触发器)时调用OnTriggerExit。 OnTriggerStay 当碰撞体接触触发器时,OnTriggerStay将在每一帧被调用。 OnCollisionEnter 当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionEnter将被调用。 OnCollisionExit 当此collider/rigidbody停止触发另一个rigidbody/collider时,OnCollisionExit将被调用。 OnCollisionStay 当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionStay将会在每一帧被调用。 OnControllerColliderHit 在移动的时,当controller碰撞到collider时OnControllerColliderHit被调用。 OnJointBreak 当附在同一对象上的关节被断开时调用。 OnParticleCollision 当粒子碰到collider时被调用。 OnBecameVisible 当renderer(渲染器)在任何相机上可见时调用OnBecameVisible。 OnBecameInvisible 当renderer(渲染器)在任何相机上都不可见时调用OnBecameInvisible。 OnLevelWasLoaded 当一个新关卡被载入时此函数被调用。 OnEnable 当对象变为可用或激活状态时此函数被调用。 OnDisable 当对象变为不可用或非激活状态时此函数被调用。 OnDestroy 当MonoBehaviour将被销毁时,这个函数被调用。 OnPreCull 在相机消隐场景之前被调用。 OnPreRender 在相机渲染场景之前被调用。 OnPostRender 在相机完成场景渲染之后被调用。 OnRenderObject 在相机场景渲染完成后被调用。 OnWillRenderObject 如果对象可见每个相机都会调用它。 OnGUI 渲染和处理GUI事件时调用。 OnRenderImage 当完成所有渲染图片后被调用,用来渲染图片后期效果。 OnDrawGizmosSelected 如果你想在物体被选中时绘制gizmos,执行这个函数。 OnDrawGizmos 如果你想绘制可被点选的gizmos,执行这个函数。 OnApplicationPause 当玩家暂停时发送到所有的游戏物体。 OnApplicationFocus 当玩家获得或失去焦点时发送给所有游戏物体。 OnApplicationQuit 在应用退出之前发送给所有的游戏物体。 OnPlayerConnected 当一个新玩家成功连接时在服务器上被调用。 OnServerInitialized 当Network.InitializeServer被调用并完成时,在服务器上调用这个函数。 OnConnectedToServer 当你成功连接到服务器时,在客户端调用。 OnPlayerDisconnected 当一个玩家从服务器上断开时在服务器端调用。 OnDisconnectedFromServer 当失去连接或从服务器端断开时在客户端调用。 OnFailedToConnect 当一个连接因为某些原因失败时在客户端调用。 OnFailedToConnectToMasterServer 当报告事件来自主服务器时在客户端或服务器端调用。 OnMasterServerEvent 当报告事件来自主服务器时在客户端或服务器端调用。 OnNetworkInstantiate 当一个物体使用Network.Instantiate进行网络初始化时调用。 OnSerializeNetworkView 在一个网络视图脚本中,用于自定义变量同步