- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unity3d中脚本生命周期
Unity3D 脚本生命周期Unity中的脚本程序如果要起作用,主要途径为将脚本附加到特定的游戏对象上,这样,脚本中不同的方法在特定的情况下会被回调,实现特定的功能。而且其脚本从唤醒到销毁都有着一套比较完善的生命周期,添加任何脚本都要遵循的生命周期的法则。下面是Unity3D官网提供的生命周期的详细介绍图:生命周期函数:Reset第一次添加组件到游戏对象时会调用,或者在编辑模式下,手动设置组件的默认值(Reset).Awake只会被调用一次,在Start方法之前被调用!主要用于字段值的初始化工作,禁用脚本,创建游戏对象,或者Resources.Load(Prefab)对象。Start只执行一次,在Awake方法执行结束后执行,但在Update方法前执行,主要用于程序的UI的初始化操作,比如获取游戏对象或者组件。Update每一帧执行,监听用户的输入,播放动画,当机器或者性能差的时候,会停止执行,会产生停顿的感觉。FixedUpdate不管当前机器忙不忙,都会保证每一帧执行一次,避免跳帧,固定更新。固定更新用于移动模型等操作。LateUpdate先执行Update,然后才执行LateUpdate(Update方法执行完,必定接着执行LateUpdate,而Update与FixedUpdate方法执行的顺序不确定,有时FixedUpdate执行了多帧,而Update却只执行了一帧,这主要跳帧造成的,取决于机器的性能)。OnGUI进行GUI的绘制,且GUI是每帧擦除重绘,仅仅只是绘制,没有生命周期的概念,所有关于绘制GUI的代码,都要直接或者间接的写在OnGUI方法中。OnDestroy当前脚本销毁时调用。OnEnable当脚本可用或者设置可用时被调用。OnDisEnable如果脚本被设置为不可用将会被执行,程序结束时也会被执行一次。下面Unity3d更加详细的生命周期图:循环生命周期中重要的函数:OnPreCull:在相机剔除场景之前调用此函数。相机可见的对象取决于剔除。OnPreCull函数调用发生在剔除之前。OnBecameVisible/OnBecameInvisible:在对象对于相机可见/不可见时调用此函数。OnWillRenderObject:如果对象可见,则为每个相机调用一次此函数OnPreRender: 在相机开始渲染场景之前调用此函数。OnRenderObject: 在完成所有常规场景渲染后调用此函数。此时,可使用 GL 类或Graphics.DrawMeshNow绘制自定义几何图形。OnPostRender: 在相机完成场景渲染后调用此函数。OnRenderImage(仅限专业版):在完成场景渲染后调用此函数,以便对屏幕图像进行后处理。OnDrawGizmos:用于在场景视图中绘制小图示 (Gizmos),以实现可视化目的。OnTriggerXXX监听Trigger触发事件OnCollisionXXX监听CollisionXXX碰撞事件OnMouseXXX监听OnMouseXXX鼠标事件
文档评论(0)