U3D MonoBehaviour

一、简介  

  MonoBehaviour是每个脚本派生类的基类,它定义了一个脚本文件从最初被加载到最终被销毁的一个完整过程。

  这个过程通过对应的方法体现出来,在不同的方法完成不同的功能,我们把这些方法称为:脚本生命周期相关的方法。包含内容有:

  Awake():当该脚本实例被载入时Awake被调用。(只会被调用一次)

  OnEable():当对象被启用并激活状态时此函数被调用。

  Start():Start仅在当第一次脚本启用Update方法被调用之前调用。(只会被调用一次)

  Update():当MonoBehaviour启用时,其Update在每一帧被调用

  FixedUpdate():(固定更新)会按照设置的时间固定频率来循环更新

  LateUpdate():LateUpdate是在所有Update函数调用后被调用。这可用于调整脚本执行顺序。例如:当物体在Update里移动时,跟随物体的相机可以在LateUpdate里实现。 

  OnGUI():渲染和处理GUI事件时调用。

  OnDisable():当对象变为不可用或非激活状态时此函数被调用。

  OnEnable():当对象被启用并激活状态时此函数被调用。

  

二、常用属性及方法介绍


    Variables 变量

useGUILayout Disabling this lets you skip the GUI layout phase.
禁用此项,将会跳过GUILayout布局。

    Functions 函数

CancelInvoke Cancels all Invoke calls on this MonoBehaviour.
在当前MonoBehaviour,取消所有Invoke调用
Invoke Invokes the method methodName in time seconds.
在time秒后,延迟调用方法methodName。
InvokeRepeating Invokes the method methodName in time seconds, then repeatedly every repeatRate seconds.
在time秒调用methodName方法,然后每repeatRate秒重复调用。
IsInvoking Is any invoke on methodName pending?
methodName方法是否在等候调用?
StartCoroutine Starts a coroutine.
开始协同程序。
StopAllCoroutines Stops all coroutines running on this behaviour.
停止运行此behaviour上的所有协同程序。
StopCoroutine Stops all coroutines named methodName running on this behaviour.
停止此behaviour上运行的所有名为methodName的协同程序。

    Static Functions 静态函数

print Logs message to the Unity Console (identical to Debug.Log).
输出日志消息到Unity控制台。等同Debug.Log。

    Messages 消息

Awake Awake is called when the script instance is being loaded.
当该脚本实例被载入时Awake被调用。
FixedUpdate This function is called every fixed framerate frame, if the MonoBehaviour is enabled.
当MonoBehaviour启用时,其 FixedUpdate 在每一帧被调用。
LateUpdate LateUpdate is called every frame, if the Behaviour is enabled.
当Behaviour启用时,其LateUpdate在每一帧被调用。
OnAnimatorIK Callback for setting up animation IK (inverse kinematics).
设置动画的IK回调(反向运动学)。
OnAnimatorMove Callback for processing animation movements for modifying root motion.
用于修改根运动处理动画移动的回调。
OnApplicationFocus Sent to all game objects when the player gets or loses focus.
当玩家获得或失去焦点时发送给所有游戏对象。
OnApplicationPause Sent to all game objects when the player pauses.
当玩家暂停发送给所有游戏对象。
OnApplicationQuit Sent to all game objects before the application is quit.
在应用退出之前发送给所有的游戏物体。
OnAudioFilterRead If OnAudioFilterRead is implemented, Unity will insert a custom filter into the audio DSP chain.
如果OnAudioFilterRead被执行,Unity将插入一个自定义的过滤器到音频DSP链。
OnBecameInvisible OnBecameInvisible is called when the renderer is no longer visible by any camera.
当renderer(渲染器)在任何相机上都不可见时调用OnBecameInvisible。
OnBecameVisible OnBecameVisible is called when the renderer became visible by any camera.
当renderer(渲染器)在任何相机上可见时调用OnBecameVisible。
OnCollisionEnter OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider.
当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionEnter将被调用。
OnCollisionEnter2D Sent when an incoming collider makes contact with this object's collider (2D physics only).
当进入的碰撞器与这个对象的碰撞器接触,发送信息(仅限2D物理)。
OnCollisionExit OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider.
当此collider/rigidbody停止触发另一个rigidbody/collider时,OnCollisionExit将被调用。
OnCollisionExit2D Sent when a collider on another object stops touching this object's collider (2D physics only).
当另一个对象的碰撞器停止接触这个对象的碰撞器时,发送信息(仅限2D物理)。
OnCollisionStay OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider.
当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionStay将会在每一帧被调用。
OnCollisionStay2D Sent each frame where a collider on another object is touching this object's collider (2D physics only).
当另一个对象的碰撞器每帧接触这个对象的碰撞器时,发送信息(仅限2D物理)。
OnConnectedToServer Called on the client when you have successfully connected to a server.
当成功连接到服务器时,在客户端调用。
OnControllerColliderHit OnControllerColliderHit is called when the controller hits a collider while performing a Move.
在移动的时,当controller碰撞到collider时OnControllerColliderHit被调用。
OnDestroy This function is called when the MonoBehaviour will be destroyed.
当MonoBehaviour将被销毁时,这个函数被调用。
OnDisable This function is called when the behaviour becomes disabled () or inactive.
当对象变为不可用或非激活状态时此函数被调用。
OnDisconnectedFromServer Called on the client when the connection was lost or you disconnected from the server.
当失去连接或从服务器端断开时在客户端调用。
OnDrawGizmos Implement OnDrawGizmos if you want to draw gizmos that are also pickable and always drawn.
如果你想绘制可被点选的gizmos,执行OnDrawGizmos。
OnDrawGizmosSelected Implement this OnDrawGizmosSelected if you want to draw gizmos only if the object is selected.
如果你想在物体被选中时绘制gizmos,执行这个函数。
OnEnable This function is called when the object becomes enabled and active.
当对象被启用并激活状态时此函数被调用。
OnFailedToConnect Called on the client when a connection attempt fails for some reason.
当一个连接因为某些原因失败时在客户端调用。
OnFailedToConnectToMasterServer Called on clients or servers when there is a problem connecting to the MasterServer.
当连接MasterServer出现问题时在客户端或服务器端调用。
OnGUI OnGUI is called for rendering and handling GUI events.
渲染和处理GUI事件时调用。
OnJointBreak Called when a joint attached to the same game object broke.
当附在同一对象上的关节被断开时调用。
OnLevelWasLoaded This function is called after a new level was loaded.
当一个新关卡被载入时此函数被调用。
OnMasterServerEvent Called on clients or servers when reporting events from the MasterServer.
当报告事件来自MasterServer时在客户端或服务器端调用。
OnMouseDown OnMouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider.
当用户鼠标在GUIElement或Collider上点击时OnMouseDown被调用。
OnMouseDrag OnMouseDrag is called when the user has clicked on a GUIElement or Collider and is still holding down the mouse.
当用户鼠标在GUIElement或Collider上拖拽时OnMouseDrag被调用 。
OnMouseEnter OnMouseEnter is called when the mouse entered the GUIElement or Collider.
当鼠标进入到GUIElement(GUI元素)或Collider(碰撞体)中时调用OnMouseEnter。
OnMouseExit OnMouseExit is called when the mouse is not any longer over the GUIElement or Collider.
当用户鼠标不在GUIElement或Collider上时OnMouseExit被调用。
OnMouseOver OnMouseOver is called every frame while the mouse is over the GUIElement or Collider.
当用户鼠标在GUIElement或Collider上经过时OnMouseOver被调用。
OnMouseUp OnMouseUp is called when the user has released the mouse button.
当用户释放鼠标按钮时调用OnMouseUp。
OnMouseUpAsButton OnMouseUpAsButton is only called when the mouse is released over the same GUIElement or Collider as it was pressed.
OnMouseUpAsButton只有当鼠标在同一个GUIElement或Collider按下,在释放时调用。
OnNetworkInstantiate Called on objects which have been network instantiated with Network.Instantiate.
当对象使用Network.Instantiate进行网络初始化时调用。
OnParticleCollision OnParticleCollision is called when a particle hits a collider.
当粒子碰到碰撞器时,OnParticleCollision 被调用。
OnPlayerConnected Called on the server whenever a new player has successfully connected.
当一个新玩家成功连接时在服务器上被调用。
OnPlayerDisconnected Called on the server whenever a player disconnected from the server.
当一个玩家从服务器上断开时在服务器端调用。
OnPostRender OnPostRender is called after a camera finished rendering the scene.
在相机完成场景渲染之后被调用。
OnPreCull OnPreCull is called before a camera culls the scene.
在相机消隐场景之前被调用。
OnPreRender OnPreRender is called before a camera starts rendering the scene.
在相机渲染场景之前被调用。
OnRenderImage OnRenderImage is called after all rendering is complete to render image.
当完成所有渲染图像后被调用,用来渲染图像后期效果。
OnRenderObject OnRenderObject is called after camera has rendered the scene.
在相机场景渲染完成后被调用。
OnSerializeNetworkView Used to customize synchronization of variables in a script watched by a network view.
在一个网络视图脚本中,用于自定义变量同步。
OnServerInitialized Called on the server whenever a Network.InitializeServer was invoked and has completed.
当Network.InitializeServer被调用并完成时,在服务器上调用这个函数。
OnTriggerEnter OnTriggerEnter is called when the Collider other enters the trigger.
当Collider(碰撞体)进入trigger(触发器)时调用OnTriggerEnter。
OnTriggerEnter2D Sent when another object enters a trigger collider attached to this object (2D physics only).
当另一个对象进入到这个对象附加的触发碰撞器时发送消息(仅2D物理)。
OnTriggerExit OnTriggerExit is called when the Collider other has stopped touching the trigger.
当Collider(碰撞体)停止触发trigger(触发器)时调用OnTriggerExit。
OnTriggerExit2D Sent when another object leaves a trigger collider attached to this object (2D physics only).
当另一个对象离开附加在这个对象的触发碰撞器时发送消息(仅2D物理)。
OnTriggerStay OnTriggerStay is called once per frame for every Collider other that is touching the trigger.
当碰撞体接触触发器时,OnTriggerStay将在每一帧被调用。
OnTriggerStay2D Sent each frame where another object is within a trigger collider attached to this object (2D physics only).
当另一个对象停留在这个对象附加的触发碰撞器内时,每帧发送消息(仅2D物理)。
OnValidate This function is called when the script is loaded or a value is changed in the inspector (Called in the editor only).
当该脚本被加载或检视面板的值被修改时,此函数被调用(仅在编辑器被调用)。
OnWillRenderObject OnWillRenderObject is called once for each camera if the object is visible.
如果该对象可见,OnWillRenderObject每次会被相机调用。
Reset Reset to default values.
重设为默认值。
Start Start is called on the frame when a script is enabled just before any of the Update methods is called the first time.
Start仅在当第一次脚本启用Update方法被调用之前调用。
Update Update is called every frame, if the MonoBehaviour is enabled.
当MonoBehaviour启用时,其Update在每一帧被调用。

Variables 变量

useGUILayout Disabling this lets you skip the GUI layout phase.
禁用此项,将会跳过GUILayout布局。

Functions 函数

CancelInvoke Cancels all Invoke calls on this MonoBehaviour 
在当前 MonoBehaviour,取消所有Invoke调用
Invoke Invokes the method methodName in time seconds.
在time秒后,延迟调用方法methodName。
InvokeRepeating Invokes the method methodName in time seconds, then repeatedly every repeatRate seconds.
在time秒调用methodName方法,然后每repeatRate秒重复调用。
IsInvoking Is any invoke on methodName pending?
methodName方法是否在等候调用?
StartCoroutine Starts a coroutine.
开始协同程序。
StopAllCoroutines Stops all coroutines running on this behaviour.
停止运行此behaviour上的所有协同程序。
StopCoroutine Stops all coroutines named methodName running on this behaviour.
停止此behaviour上运行的所有名为methodName的协同程序。

Static Functions 静态函数

print Logs message to the Unity Console (identical to Debug.Log).
输出日志消息到Unity控制台。等同Debug.Log。

Messages 消息

Awake Awake is called when the script instance is being loaded.
当该脚本实例被载入时Awake被调用。
FixedUpdate This function is called every fixed framerate frame, if the MonoBehaviour is enabled.
当 MonoBehaviour启用时,其 FixedUpdate 在每一帧被调用。
LateUpdate LateUpdate is called every frame, if the Behaviour is enabled.
当Behaviour启用时,其LateUpdate在每一帧被调用。
OnAnimatorIK Callback for setting up animation IK (inverse kinematics).
设置动画的IK回调(反向运动学)。
OnAnimatorMove Callback for processing animation movements for modifying root motion.
用于修改根运动处理动画移动的回调。
OnApplicationFocus Sent to all game objects when the player gets or loses focus.
当玩家获得或失去焦点时发送给所有游戏对象。
OnApplicationPause Sent to all game objects when the player pauses.
当玩家暂停发送给所有游戏对象。
OnApplicationQuit Sent to all game objects before the application is quit.
在应用退出之前发送给所有的游戏物体。
OnAudioFilterRead If OnAudioFilterRead is implemented, Unity will insert a custom filter into the audio DSP chain.
如果OnAudioFilterRead被执行,Unity将插入一个自定义的过滤器到音频DSP链。
OnBecameInvisible OnBecameInvisible is called when the renderer is no longer visible by any camera.
当renderer(渲染器)在任何相机上都不可见时调用OnBecameInvisible。
OnBecameVisible OnBecameVisible is called when the renderer became visible by any camera.
当renderer(渲染器)在任何相机上可见时调用OnBecameVisible。
OnCollisionEnter OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider.
当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionEnter将被调用。
OnCollisionEnter2D Sent when an incoming collider makes contact with this object's collider (2D physics only).
当进入的碰撞器与这个对象的碰撞器接触,发送信息(仅限2D物理)。
OnCollisionExit OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider.
当此collider/rigidbody停止触发另一个rigidbody/collider时,OnCollisionExit将被调用。
OnCollisionExit2D Sent when a collider on another object stops touching this object's collider (2D physics only).
当另一个对象的碰撞器停止接触这个对象的碰撞器时,发送信息(仅限2D物理)。
OnCollisionStay OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider.
当此collider/rigidbody触发另一个rigidbody/collider时,OnCollisionStay将会在每一帧被调用。
OnCollisionStay2D Sent each frame where a collider on another object is touching this object's collider (2D physics only).
当另一个对象的碰撞器每帧接触这个对象的碰撞器时,发送信息(仅限2D物理)。
OnConnectedToServer Called on the client when you have successfully connected to a server.
当成功连接到服务器时,在客户端调用。
OnControllerColliderHit OnControllerColliderHit is called when the controller hits a collider while performing a Move.
在移动的时,当controller碰撞到collider时OnControllerColliderHit被调用。
OnDestroy This function is called when the  MonoBehaviour will be destroyed.
当 MonoBehaviour将被销毁时,这个函数被调用。
OnDisable This function is called when the behaviour becomes disabled () or inactive.
当对象变为不可用或非激活状态时此函数被调用。
OnDisconnectedFromServer Called on the client when the connection was lost or you disconnected from the server.
当失去连接或从服务器端断开时在客户端调用。
OnDrawGizmos Implement OnDrawGizmos if you want to draw gizmos that are also pickable and always drawn.
如果你想绘制可被点选的gizmos,执行OnDrawGizmos。
OnDrawGizmosSelected Implement this OnDrawGizmosSelected if you want to draw gizmos only if the object is selected.
如果你想在物体被选中时绘制gizmos,执行这个函数。
OnEnable This function is called when the object becomes enabled and active.
当对象被启用并激活状态时此函数被调用。
OnFailedToConnect Called on the client when a connection attempt fails for some reason.
当一个连接因为某些原因失败时在客户端调用。
OnFailedToConnectToMasterServer Called on clients or servers when there is a problem connecting to the MasterServer.
当连接MasterServer出现问题时在客户端或服务器端调用。
OnGUI OnGUI is called for rendering and handling GUI events.
渲染和处理GUI事件时调用。
OnJointBreak Called when a joint attached to the same game object broke.
当附在同一对象上的关节被断开时调用。
OnLevelWasLoaded This function is called after a new level was loaded.
当一个新关卡被载入时此函数被调用。
OnMasterServerEvent Called on clients or servers when reporting events from the MasterServer.
当报告事件来自MasterServer时在客户端或服务器端调用。
OnMouseDown OnMouseDown is called when the user has pressed the mouse button while over the GUIElement or Collider.
当用户鼠标在GUIElement或Collider上点击时OnMouseDown被调用。
OnMouseDrag OnMouseDrag is called when the user has clicked on a GUIElement or Collider and is still holding down the mouse.
当用户鼠标在GUIElement或Collider上拖拽时OnMouseDrag被调用 。
OnMouseEnter OnMouseEnter is called when the mouse entered the GUIElement or Collider.
当鼠标进入到GUIElement(GUI元素)或Collider(碰撞体)中时调用OnMouseEnter。
OnMouseExit OnMouseExit is called when the mouse is not any longer over the GUIElement or Collider.
当用户鼠标不在GUIElement或Collider上时OnMouseExit被调用。
OnMouseOver OnMouseOver is called every frame while the mouse is over the GUIElement or Collider.
当用户鼠标在GUIElement或Collider上经过时OnMouseOver被调用。
OnMouseUp OnMouseUp is called when the user has released the mouse button.
当用户释放鼠标按钮时调用OnMouseUp。
OnMouseUpAsButton OnMouseUpAsButton is only called when the mouse is released over the same GUIElement or Collider as it was pressed.
OnMouseUpAsButton只有当鼠标在同一个GUIElement或Collider按下,在释放时调用。
OnNetworkInstantiate Called on objects which have been network instantiated with Network.Instantiate.
当对象使用Network.Instantiate进行网络初始化时调用。
OnParticleCollision OnParticleCollision is called when a particle hits a collider.
当粒子碰到碰撞器时,OnParticleCollision 被调用。
OnPlayerConnected Called on the server whenever a new player has successfully connected.
当一个新玩家成功连接时在服务器上被调用。
OnPlayerDisconnected Called on the server whenever a player disconnected from the server.
当一个玩家从服务器上断开时在服务器端调用。
OnPostRender OnPostRender is called after a camera finished rendering the scene.
在相机完成场景渲染之后被调用。
OnPreCull OnPreCull is called before a camera culls the scene.
在相机消隐场景之前被调用。
OnPreRender OnPreRender is called before a camera starts rendering the scene.
在相机渲染场景之前被调用。
OnRenderImage OnRenderImage is called after all rendering is complete to render image.
当完成所有渲染图像后被调用,用来渲染图像后期效果。
OnRenderObject OnRenderObject is called after camera has rendered the scene.
在相机场景渲染完成后被调用。
OnSerializeNetworkView Used to customize synchronization of variables in a script watched by a network view.
在一个网络视图脚本中,用于自定义变量同步。
OnServerInitialized Called on the server whenever a Network.InitializeServer was invoked and has completed.
当Network.InitializeServer被调用并完成时,在服务器上调用这个函数。
OnTriggerEnter OnTriggerEnter is called when the Collider other enters the trigger.
当Collider(碰撞体)进入trigger(触发器)时调用OnTriggerEnter。
OnTriggerEnter2D Sent when another object enters a trigger collider attached to this object (2D physics only).
当另一个对象进入到这个对象附加的触发碰撞器时发送消息(仅2D物理)。
OnTriggerExit OnTriggerExit is called when the Collider other has stopped touching the trigger.
当Collider(碰撞体)停止触发trigger(触发器)时调用OnTriggerExit。
OnTriggerExit2D Sent when another object leaves a trigger collider attached to this object (2D physics only).
当另一个对象离开附加在这个对象的触发碰撞器时发送消息(仅2D物理)。
OnTriggerStay OnTriggerStay is called once per frame for every Collider other that is touching the trigger.
当碰撞体接触触发器时,OnTriggerStay将在每一帧被调用。
OnTriggerStay2D Sent each frame where another object is within a trigger collider attached to this object (2D physics only).
当另一个对象停留在这个对象附加的触发碰撞器内时,每帧发送消息(仅2D物理)。
OnValidate This function is called when the script is loaded or a value is changed in the inspector (Called in the editor only).
当该脚本被加载或检视面板的值被修改时,此函数被调用(仅在编辑器被调用)。
OnWillRenderObject OnWillRenderObject is called once for each camera if the object is visible.
如果该对象可见,OnWillRenderObject每次会被相机调用。
Reset Reset to default values.
重设为默认值。
Start Start is called on the frame when a script is enabled just before any of the Update methods is called the first time.
Start仅在当第一次脚本启用Update方法被调用之前调用。
Update Update is called every frame, if the  MonoBehaviour is enabled.
当 MonoBehaviour启用时,其Update在每一帧被调用。 
原文地址:https://www.cnblogs.com/forever-Ys/p/10558433.html