在unity中如不继承Monobehavior,怎么调用方法
在Unity开发中,若不继承MonoBehaviour,该如何调用方法呢?下面将详细介绍Unity中各类方法的调用规则和使用场景,供大家参考学习。
1. 生命周期方法
Update
当MonoBehaviour启用时,Update方法在每一帧被调用,且每帧仅调用一次。它常用于处理与帧相关的逻辑,如角色移动、动画更新等。
LateUpdate
当Behaviour启用时,LateUpdate方法每帧调用一次。它通常在Update方法之后执行,适用于需要在所有更新操作完成后执行的逻辑,例如相机跟随。
FixedUpdate
当MonoBehaviour启用时,FixedUpdate方法在每一帧被调用。与Update不同的是,它可以多次调用,不过不适合用于帧频很高的情况,常用于处理物理模拟相关的逻辑,如刚体的移动和碰撞检测。
Awake
当一个脚本实例被载入时,Awake方法被调用。它会在所有对象初始化完成后立即执行,常用于脚本的初始化操作。
Start
Start方法仅在Update函数第一次被调用前调用。它主要用于在脚本开始运行时进行一次性的初始化操作。
Reset
Reset方法用于将脚本的属性重置为默认值,通常在脚本被添加到对象或在检查器中点击“Reset”按钮时调用。
2. 鼠标事件方法
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上按下并释放时才会调用,与OnMouseUp不同的是,它只响应鼠标点击操作。
OnMouseDrag
当用户鼠标拖拽GUIElement(GUI元素)或Collider(碰撞体)时,OnMouseDrag方法被调用。常用于实现物体的拖拽功能。
3. 碰撞与触发事件方法
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方法被调用。常用于角色控制器与其他物体的碰撞检测。
4. 其他事件方法
OnJointBreak
当附在同一对象上的关节被断开时,OnJointBreak方法被调用。
OnParticleCollision
当粒子碰到collider时,OnParticleCollision方法被调用。
OnBecameVisible
当renderer(渲染器)在任何相机上可见时,OnBecameVisible方法被调用。
OnBecameInvisible
当renderer(渲染器)在任何相机上都不可见时,OnBecameInvisible方法被调用。
OnLevelWasLoaded
当一个新关卡被载入时,OnLevelWasLoaded方法被调用。
OnEnable
当对象变为可用或激活状态时,OnEnable方法被调用。
OnDisable
当对象变为不可用或非激活状态时,OnDisable方法被调用。
OnDestroy
当MonoBehaviour将被销毁时,OnDestroy方法被调用。
OnPreCull
在相机消隐场景之前,OnPreCull方法被调用。
OnPreRender
在相机渲染场景之前,OnPreRender方法被调用。
OnPostRender
在相机完成场景渲染之后,OnPostRender方法被调用。
OnRenderObject
在相机场景渲染完成后,OnRenderObject方法被调用。
OnWillRenderObject
如果对象可见,每个相机都会调用OnWillRenderObject方法。
OnGUI
在渲染和处理GUI事件时,OnGUI方法每帧调用一次。
OnRenderImage
当完成所有渲染图片后,OnRenderImage方法被调用,可用于渲染图片后期效果。
OnDrawGizmosSelected
如果你想在物体被选中时绘制gizmos,可执行OnDrawGizmosSelected方法。
OnDrawGizmos
如果你想绘制可被点选的gizmos,可执行OnDrawGizmos方法。
OnApplicationPause
当玩家暂停时,OnApplicationPause方法会发送到所有的游戏物体。
OnApplicationFocus
当玩家获得或失去焦点时,OnApplicationFocus方法会发送给所有游戏物体。
OnApplicationQuit
在应用退出之前,OnApplicationQuit方法会发送给所有的游戏物体。
OnPlayerConnected
当一个新玩家成功连接时,OnPlayerConnected方法在服务器上被调用。
OnServerInitialized
当Network.InitializeServer被调用并完成时,OnServerInitialized方法在服务器上调用。
OnConnectedToServer
当你成功连接到服务器时,OnConnectedToServer方法在客户端调用。
OnPlayerDisconnected
当一个玩家从服务器上断开时,OnPlayerDisconnected方法在服务器端调用。
OnDisconnectedFromServer
当失去连接或从服务器端断开时,OnDisconnectedFromServer方法在客户端调用。
OnFailedToConnect
当一个连接因为某些原因失败时,OnFailedToConnect方法在客户端调用。
OnFailedToConnectToMasterServer
当报告事件来自主服务器时,OnFailedToConnectToMasterServer方法在客户端或服务器端调用。
OnMasterServerEvent
当报告事件来自主服务器时,OnMasterServerEvent方法在客户端或服务器端调用。
OnNetworkInstantiate
当一个物体使用Network.Instantiate进行网络初始化时,OnNetworkInstantiate方法被调用。
OnSerializeNetworkView
在一个网络视图脚本中,OnSerializeNetworkView方法用于自定义变量同步。