Unity3D脚本的基本架构

LateUpdate():如果启用,会在每一帧中被调用。在所有Update函数被调用之后才执行。有利于程序的有序执行。(例如:跟随摄像机就应该在LateUpdate执行,因为它跟随的对象也许需要在Update中执行)

OnPreCull():摄像机在场景中剔除对象前被调用。剔除确定哪些对象是在摄像机中是可见的。OnPreCull是在剔除这个过程之前被调用的,此消息被发送到所有附加了脚本的摄像机上。如果想改变摄像机的观察参数(例如fieldofView或transform),可以在这里做到。在调用OnPreCull后将根据摄像机的参数决定场景中对象的可见性。

OnBecameVisible/OnBecameInvisible: 当物体被任意摄像机可见时,OnBecameVisible被调用;当物体不再被任意摄像机可见时,OnBecameInvisible被调用。消息被发送到附加在该Render上的所有脚本。

OnWillRenderObject():如果对象可见,会被每个摄像机调用一次。如果禁用,将不会被调用。函数在剔除(culling)过程中调用时,仅在渲染每个被剔除对象前被调用。

OnPreRender():在摄像机开始渲染场景前被调用。此消息被发送到所有附加了脚本的摄像机上。注意:如果想在这里改变摄像机的查看参数(例如fieldofView),需要到下一帧才可以看到效果,要做到马上,需要在OnPreCull中。

OnRenderObject():在摄像机渲染完场景后被调用,这可以用来用Graphics.DrawMeshNow或其它函数来渲染自己的对象。这个函数除了可以在任何有这个脚本的对象上调用而不去管有没有附加到摄像机上,与OnPostRender类似。

OnPostRender():在摄像机渲染完场景后被调用,函数被调用只有在脚本附加在摄像机上并且已启用。OnPostRender可以作为协同程序,可以在函数中用yield语句调用。OnPostRender在摄像机渲染所有它的对象后被调用,如果想在摄像机、GUI渲染完后做一些其他的事情,可用WaitForEndOfFrame协同程序。

OnRenderImage(source:RenderTexture,destination:RenderTexture):在渲染器完全渲染图像后被调用。后置处理效果(仅Unity Pro)。
它可以允许你通过基于shader过滤器的处理来修改最终图像。传入的图像是源渲染纹理,最终结果应该结束在目的渲染纹理。当这有多重图像过滤器附加到摄像机上时,会通过把第一个的目的渲染纹理来作为第二个的源渲染纹理的顺序来处理这些图像。 消息被发送到所有附加脚本的摄像机上。

OnDrawGizmos():如果想要画一些可以挑选的,又总是可见的小物件(gizmos)时,执行OnDrawGizmos这个函数。这个可以让你的对象在场景中迅速回暖。需要注意的是OnDrawGizmos会使用相对于场景视图的鼠标位置。

Quitting():退出应用程序。Application.Quit()/Application.CancelQuit(用来在退出游戏前播放结束动画)
OnApplicationQuit():在发送到应用程序前,退出所有游戏对象。在编辑器中,当用户停止播放模式时被调用,在网络播放器中,在关闭Web视图时被调用。

原文地址:http://my.eoe.cn/weichengweilai/archive/4197.html

你可能感兴趣的:(Unity3D脚本的基本架构)