unity全部的生命周期函数

生命周期相关:

Awake() // 附着的对象激活时调用 Awake。基本上是作为构造方法使用。脚本失活时也会触发。
OnEnable()// 当对象已启用并处于活动状态时调用此函数
OnDisable()// 当行为被禁用或处于非活动状态时调用此函数
OnDestroy()// 当 MonoBehaviour 将被销毁时调用此函数

帧更新相关:

Start()//加载出后,在首次帧更新之前调用。只调用一次。
Update()// 仅在激活时,每一帧都调用 Update
LateUpdate()// 仅在激活时,每一帧都将调用 LateUpdate。保证晚于所有Update后。
FixedUpdate()// 仅在激活时,每个固定时间后调用此函数(默认0.02秒)
OnGUI()// 渲染和处理 GUI 事件时调用 OnGUI(每帧调用两次)

照相机相关:

OnWillRenderObject()// 如果对象可见,则每个照相机都会调用一次 OnWillRenderObject
OnRenderObject()// 照相机渲染场景后调用 OnRenderObject
OnRenderImage(RenderTexture source, RenderTexture destination)// OnRenderImage 在所有渲染完成后被调用,以对图片进行额外渲染
OnPreRender()// 在照相机开始渲染场景前调用 OnPreRender
OnPreCull()// 在照相机裁剪场景前调用 OnPreCull
OnPostRender()// 照相机完成场景渲染后调用 OnPostRender
OnBecameInvisible()// 当呈现器在任何照相机上都不可见时调用 OnBecameInvisible
OnBecameVisible()// 当呈现器在任何照相机上可见时调用 OnBecameVisible

特定情况发生时生效:

OnTransformChildrenChanged()// 回叫在转换子级发生更改后发送到图形
OnTransformParentChanged()// 回叫在转换父级发生更改后发送到图形
OnRectTransformRemoved()// 关联的 RectTransform 被删除时调用(RectTransform是UI控件的Transform)
OnRectTransformDimensionsChange()// 如果关联的 RectTransform 的维度发生更改,则发送回叫
OnApplicationQuit()// 应用程序退出前发送给所有游戏对象
OnBeforeTransformParentChanged()// 转换父级更改发生前将回叫发送到图形
OnApplicationFocus(bool focus)// 当玩家获得或失去焦点时发送给所有游戏对象
OnApplicationPause(bool pause)// 当玩家暂停时发送给所有游戏对象

触发器碰撞相关:

 OnTriggerEnter2D(Collider2D collision)// 如果另一个碰撞器 2D 进入了触发器,则调用 OnTriggerEnter2D (仅限 2D 物理)
OnTriggerEnter2D(Collider2D collision)// 如果另一个碰撞器 2D 进入了触发器,则调用 OnTriggerEnter2D (仅限 2D 物理)
OnTriggerEnter(Collider other)// 如果另一个碰撞器进入了触发器,则调用 OnTriggerEnter
OnTriggerExit(Collider other)// 如果另一个碰撞器停止接触触发器,则调用 OnTriggerExit
 OnTriggerExit2D(Collider2D collision)// 如果另一个碰撞器 2D 停止接触触发器,则调用 OnTriggerExit2D (仅限 2D 物理)
 OnTriggerStay(Collider other)// 对于触动触发器的所有“另一个碰撞器”,OnTriggerStay 将在每一帧被调用一次
OnTriggerStay2D(Collider2D collision)// 如果其他每个碰撞器 2D 接触触发器,OnTriggerStay2D 将在每一帧被调用一次(仅限 2D 物理)

刚体碰撞相关:

OnCollisionStay2D(Collision2D collision)// 每当碰撞器 2D/刚体 2D 接触到刚体 2D/碰撞器 2D 时,OnCollisionStay2D 将在每一帧被调用一次(仅限 2D 物理)
OnCollisionExit(Collision collision)	// 当此碰撞器/刚体停止接触另一刚体/碰撞器时调用 OnCollisionExit
OnCollisionExit2D(Collision2D collision)// 当此碰撞器 2D/刚体 2D 停止接触另一刚体 2D/碰撞器 2D 时调用 OnCollisionExit2D (仅限 2D 物理)
OnCollisionStay(Collision collision)	// 每当此碰撞器/刚体接触到刚体/碰撞器时,OnCollisionStay 将在每一帧被调用一次
OnCollisionEnter(Collision collision)// 当此碰撞器/刚体开始接触另一个刚体/碰撞器时,调用 OnCollisionEnter
OnCollisionEnter2D(Collision2D collision)// 当此碰撞器 2D/刚体 2D 开始接触另一刚体 2D/碰撞器 2D 时调用 OnCollisionEnter2D (仅限 2D 物理)

粒子相关:

OnParticleTrigger()// 当粒子系统中的任意粒子满足触发模块的条件时调用
OnParticleSystemStopped()// 系统中所有粒子已死亡且将不会产生新粒子时调用
OnParticleUpdateJobScheduled()// 当已计划粒子系统的内置更新作业时调用
OnParticleCollision(GameObject other)// 当粒子击中碰撞器时调用 OnParticleCollision

鼠标相关:

OnMouseUpAsButton()// 仅当在同一 GUIElement 或碰撞器上按下鼠标,在松开时调用 OnMouseUpAsButton
OnMouseOver()// 当鼠标停留在 GUIElement 或碰撞器上时每帧都调用 OnMouseOver
OnMouseDown()// 当用户在 GUIElement 或碰撞器上按鼠标按钮时调用 OnMouseDown
OnMouseDrag()// 当用户在 GUIElement 或碰撞器上单击鼠标并保持按住鼠标时调用 OnMouseDrag
OnMouseEnter()// 当鼠标进入 GUIElement 或碰撞器时调用 OnMouseEnter
OnMouseExit()// 当鼠标不再停留在 GUIElement 或碰撞器上时调用 OnMouseExit
OnMouseUp()// 当用户松开鼠标按钮时调用 OnMouseUp

仅编辑模式生效

Reset()// 重置为默认值。在添加组件或点击组件的重置时调用。可以初始化组件的属性。但在运行时不会生效
OnValidate()// 当该脚本被加载或检视面板的值被修改时调用此函数(仅在编辑器中调用)

网络相关:

OnServerInitialized()// 无论何时调用并完成 Network.InitializeServer,都在该服务器上调用
OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)// 在网络视图监视的脚本中,用于自定义变量同步
OnPlayerDisconnected(NetworkPlayer player)// 当玩家从服务器断开连接时在服务器调用
OnPlayerConnected(NetworkPlayer player)// 当一个新玩家成功连接时在服务器上调用
OnNetworkInstantiate(NetworkMessageInfo info)// 当对象使用 Network.Instantiate 进行网络实例化时调用
OnMasterServerEvent(MasterServerEvent msEvent)// 当报告事件来自 MasterServer 时在客户端或服务器调用
OnFailedToConnect(NetworkConnectionError error)// 由于某些原因导致连接尝试失败时在客户端上调用
OnFailedToConnectToMasterServer(NetworkConnectionError error)// 当连接 MasterServer 出现问题时在客户端或服务器调用
OnDisconnectedFromServer(NetworkDisconnection info)// 当失去连接或从服务器端断开时在客户端调用
OnDisconnectedFromMasterServer(NetworkDisconnection info)// 当失去连接或从主服务器端断开时在客户端调用
OnConnectedToServer()	// 当成功连接到服务器时,在客户端调用

不懂的方法:

OnJointBreak(float breakForce)// 当附加到同一游戏对象的联接断开时调用
OnJointBreak2D(Joint2D joint)// 当附加到同一游戏对象的 Joint2D 断开时调用(仅限 2D 物理)
OnLevelWasLoaded(int level)// 加载一个新级别时调用此函数
OnDrawGizmos()// 如果你想要绘制可选取并始终绘制的 gizmos,请实现此 OnDrawGizmos
OnDrawGizmosSelected()// 如果你希望仅在对象被选中时绘制 gizmos,请实现此 OnDrawGizmosSelected
OnControllerColliderHit(ControllerColliderHit hit)// 如果控制器在执行移动时击中碰撞器,则调用 OnControllerColliderHit
OnCanvasGroupChanged()// 如果更改了画布组合,则发送回叫
OnAudioFilterRead(float[] data, int channels)// 如果已实现 OnAudioFilterRead,则 Unity 将向音频 DSP 链插入自定义筛选器
OnAnimatorMove()// 在此状态计算机和动画均已求值后但在 OnAnimatorIK 之前,将在每一帧都调用此回叫
OnAnimatorIK(int layerIndex)// 设置动画 IK 的回叫(反向运动学)
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值