18. Unity—MonoBehaviour
unity—MonoBehaviour类
MonoBehaviour是每个脚本的基类. 每个Javascript脚本自动继承MonoBehaviour,使用C#或Boo时,需要显式继承MonoBehaviour.
函数:
定时调用
function Invoke (methodName : string, time: float) : void
在一定时间后调用methodName函数。
function InvokeRepeating (methodName :string, time : float, repeatRate : float) : void
每隔一定时间调用一次methodName函数。
function CancelInvoke () : void
取消这个脚本中的所有调用。
function IsInvoking (methodName : string) :bool
某指定函数是否在等候调用。
function IsInvoking () : bool
此脚本中是否有调用在等候。
协程
function StartCoroutine (routine :IEnumerator) : Coroutine
开始协程
function StartCoroutine (methodName :string, value : object = null) : Coroutine
通过协程名来开始协程
function StopCoroutine (methodName :string) : void
停止这个脚本中通过协程名开始的、名为methodName的所有协程。
function StopAllCoroutines () : void
停止所在脚本中的所有协同程序
可重写函数:
全局事件响应函数
void Update()
当MonoBehaviour启用时,其Update在每一帧被调用。
void LateUpdate()
当Behaviour启用时,其LateUpdate在每一帧被调用。LateUpdate是在所有Update函数调用后被调用。
void FixedUpdate()
当MonoBehaviour启用时,其FixedUpdate在每一固定帧被调用。处理Rigidbody时,需要用FixedUpdate 代替Update。
void Awake()
当一个脚本实例被载入时Awake被调用。在脚本整个生命周期内它仅被调用一次。Awake总是在Start之前被调用。在该函数中设置引用。
void Start()
Start仅在Update函数第一次被调用前调用。它和Awake的不同是Start只在脚本实例被启用时调用。在该函数中进行变量赋值。
void OnEnable()
当对象变为可用或激活状态时此函数被调用。
void OnDisable()
当对象变为不可用或非激活状态时此函数被调用。
void OnDestroy()
当MonoBehaviour将被销毁时,这个函数被调用。
鼠标事件响应函数
void OnMouseEnter() 当鼠标进入到GUIElement(GUI元素)或Collider(碰撞体)中时调用。
void OnMouseOver() 当鼠标悬浮在GUIElement(GUI元素)或Collider(碰撞体)上时调用。
void OnMouseExit() 当鼠标移出GUIElement(GUI元素)或Collider(碰撞体)上时调用。
void OnMouseDown() 当鼠标在GUIElement(GUI元素)或Collider(碰撞体)上点击时调用。
void OnMouseUp() 当用户释放鼠标按钮时调用。
void OnMouseDrag() 当用户鼠标拖拽GUIElement(GUI元素)或Collider(碰撞体)时调用。
触发器事件响应函数
void OnTriggerEnter(Collider other) 当Collider(碰撞体)进入trigger(触发器)时调用。
void OnTriggerExit(Collider other) 当Collider(碰撞体)停止触发trigger(触发器)时调用。
void OnTriggerStay(Collider other) 当碰撞体接触触发器时,将在每一帧被调用。
碰撞事件响应函数
void OnCollisionEnter(Collision collision) 当进入碰撞时调用
void OnCollisionExit(Collision collisionInfo) 当退出碰撞时调用
void OnCollisionStay(Collision collisionInfo) 当逗留在碰撞状态时会在每一帧被调用。
相机事件响应函数
void OnPreCull() 在相机消隐场景之前被调用。
void OnPreRender() 在相机渲染场景之前被调用。
void OnPostRender() 在相机完成场景渲染之后被调用。
void OnRenderImage() 当所有图片被渲染完成后调用,用来进行后期效果处理。
渲染器事件
function OnBecameVisible () : void 当渲染器对于任何摄像机可见时调用
function OnBecameInvisible () : void 当渲染器对于任何摄像机不可见时调用
程序事件响应函数
void OnApplicationPause() 当程序暂停时调用。
void OnApplicationFocus() 当程序失去焦点时调用。
void OnApplicationQuit() 当程序退出之前调用。
服务器事件响应函数
void OnPlayerConnected(NetworkPlayer player)
当一个新玩家成功连接时在服务器上被调用。
void OnServerInitialized()
当服务器初始化完成时,在服务器上调用这个函数。
void OnConnectedToServer()
当你成功连接到服务器时,在客户端调用。
void OnPlayerDisconnected(NetworkPlayer player)
当一个玩家从服务器上断开时在服务器端调用。
void OnDisconnectedFromServer(NetworkDisconnection info)
当失去连接或从服务器端断开时在客户端调用。
void OnFailedToConnect(NetworkConnectionErrorerror)
当一个连接因为某些原因失败时在客户端调用。
void OnFailedToConnectToMasterServer(NetworkConnectionError info)
当连接主服务器出现问题时在客户端或服务器端调用.
void OnMasterServerEvent(MasterServerEvent msEvent)
当接收到来自服务器的报告事件时在客户端或服务器端调用。
void OnNetworkInstantiate(NetworkMessageInfo info)
当一个物体使用Network.Instantiate进行网络初始化时调用。
其他重要函数
void OnLevelWasLoaded(int level) 当一个新关卡被载入时此函数被调用。
void OnGUI() 渲染和处理GUI事件,该函数将会在每一帧被调用。
void OnJointBreak (float breakForce) 当关节断开时调用。
unity事件响应函数调用次序: