(三)Unity3D中c#脚本的特殊事件的调用顺序笔记

1.编辑器阶段:Reset方法;用来初始化脚本的各个属性,第一次添加脚本时调用
2.场景第一次加载阶段(都在start方法之前调用):预设(prefab)刚刚实例化之后调用 Awake方法
OnEnable:对象可用之后调用,
3.第一帧更新之前:Start方法:如果脚本实例可用,则在第一帧调用之前被调用。
注:脚本的初始化工作:Awake ——-》OnEnable —————-》Start
4.执行阶段:当前帧执行完毕,下一帧未执行前:OnApplicationPause:检测到暂停状态时,会在当前帧结束后调用该函数。
5.更新顺序:FixedUpdate:基于可靠的定时器的,不受帧率影响。用来处理物理计算相关的逻辑。不一定每帧都运行,也可能每帧运行多次
Update:每帧运行,游戏逻辑按帧更新的主要方法。
LateUpdate:在Update后执行,每帧都会被调用,用来处理发生在Update方法之后,但在相机渲染之前的逻辑。例如:第三人称的控制器的相机跟随。

协程部分:
协程:一种类似于多线程效果的技术,与上面的三个更新方法配合使用。简化游戏设计的难度。实现游戏逻辑的更新和循环。协程实现主要是利用C#的迭代器。
正常情况下,协程是在Update返回时执行的,主要是用于延缓其执行(yield),直到给定的YieldInstanceInstruction完成。
几种协程的用法:
yield: 下一帧所有update方法被调用之后,协程继续执行
yield WaitForSeconds:协程会等待指定的时间后继续执行
yield WWW:在WWW加载完成之后继续执行
yield StartCoroutine(My Func):用于链接协程,等待MyFunc协程先完成

渲染部分
游戏脚本初始化完成之后,进入正常的逻辑更新之后,一些渲染事件会调用相应的方法。
常见方法:
OnPreCull:仅在相机剔除场景前进行调用。
OnBecameVisible:当物体在任何相机中可见时进行调用
OnBecameInvisible:当物体在任何相机中不可见时进行调用
OnWillRenderObject:如果物体可见,它将为每个相机调用一次
OnPreRender:相机渲染场景之前调用
OnRenderObject:所有固定场景渲染之后被调用
OnPostRender:在相机完成场景渲染后被调用
OnRenderImage:场景渲染完成之后被调用,用来对屏幕的图像进行处理
OnGUI:每帧被调用,用来回应GUI事件,布局,重绘事件先完成,之后每次执行布局,键盘,鼠标事件
OnDrawGizGizmos:为了可视化,在场景中绘制小图标。
3个常用的方法:OnBecameVisib,OnBecameInvisible和OnGUI。

游戏对象销毁阶段:
OnDestroy:所有帧更新之后被调用

游戏场景退出阶段:
OnApplicationQuit:在退出之前所有游戏对象都会调用。用户停止播放前、或网页关闭前被调用。
OnDisable:当行为不可用或非激活时调用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值