Unity3D脚本生命周期

说明:

图来自官方文档,测试时有点出入

无论是可见物体还是相机的OnRenderObject都是在相机的OnPostRender之后执行


OnPreCullOnPreRender,OnPostRender,OnPostRender,OnRenderImage这几个go上有相机才执行


OnRenderObject 任何激活go都执行,场景中同时有camera和可见go这个函数会在OnPostRender后执行


OnBecameVisible  针对可见go(包含渲染器并激活的go),只要脚本挂上,并实现这个方法,就执行(脚本前面的勾被勾掉时也执行)一次,

如果有相机执行位置是在相机的OnPreCull之后,OnPreRender之前执行


OnWillRenderObject 可见go执行(相机go是不执行的,估计因为不可见),

如果2个相机,1个可见go,go上脚本写了这个,

那么这个函数在一次循环中执行2次(一次循环中对每一个相机都执行一次),而且每次循环都会执行

具体位置在相机的OnPreCull后 相机的OnPreRender前






渲染

  • OnPreCull: 在相机剔除场景之前调用此函数。相机可见的对象取决于剔除。OnPreCull 函数调用发生在剔除之前。
  • OnBecameVisible/OnBecameInvisible: 在对象对于相机可见/不可见时调用此函数。
  • OnWillRenderObject: 如果对象可见,则为每个相机调用一次此函数。
  • OnPreRender: 在相机开始渲染场景之前调用此函数。
  • OnRenderObject: 在完成所有常规场景渲染后调用此函数。此时,可使用 GL 类或 Graphics.DrawMeshNow 绘制自定义几何图形。
  • OnPostRender: 在相机完成场景渲染后调用此函数。
  • OnRenderImage(仅限专业版): 在完成场景渲染后调用此函数,以便对屏幕图像进行后处理。
  • OnGUI: 在每帧上多次调用此函数,以响应 GUI 事件。程序首先将处理 Layout 和 Repaint 事件,然后再处理每个输入事件的 Layout 和 keyboard/鼠标事件。
  • OnDrawGizmos 用于在场景视图中绘制小图示 (Gizmos),以实现可视化目的。

参考资料:

1.Execution Order of Event Functions  http://docs.unity3d.com/Manual/ExecutionOrder.html
2.游戏蛮牛Unity 用户文档1.0  http://www.unitymanual.com/m/Manual/index.htm

转载于:https://www.cnblogs.com/nafio/p/9137585.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值