【Unity Tips】备忘录(扫盲篇)


写在前面


Unity3D虽然是个非常方便的游戏引擎,但还是有一些地方会产生一些让人莫名其妙的问题,而且debug半天也不知道到底哪里错了。往往在经过了大量的log之后,也许我们才顿悟,原来Unity内部是这样做的啊。这里旨在总结这些容易被忽略、但是又经常会给开发造成麻烦的问题,欢迎补充。

随时更新。




备忘录


1.  StartCoroutineStopCoroutine


Coroutine,即协同程序,如果使用的语言是C#,那么我们必须使用StartCoroutine去指明开启一个协同程序。StartCoroutine有两个版本:一种是StartCoroutine(routine: IEnumerator): Coroutine;,另一种是StartCoroutine(methodName: string, value: object = null): Coroutine;
如果你仔细看官方文档,只有第二种,即以string为参数的StartCoroutine才可以使用public void StopCoroutine(string methodName);来终止该协同程序。

根据网友@Oo幻想oO (多谢!)的提醒,实际上所有的Coroutine都可以用public void StopCoroutine(IEnumerator routine);这种传参方式停止。



2. Awake、Start、Update、LateUpdate、FixedUpdate


上述函数都是MonoBehavior几个最常见的基本函数。但很少有人真正知道它们具体的调用顺序。


首先是Awake。当该脚本实例被加载时,Unity会调用它的Awake函数,在该脚本实例的整个生命周期中,它只会被调用一次。具体来说,Unity首先会加载场景中的所有对象,完成后,去扫描这些对象上的MonoBehavior,然后调用它的Awake函数。因此,我们通常使用Awake来初始化各种变量,在其中使用FindWithTag等函数也是没有问题的。Awake函数将早于任何Start函数被调用,但是Awake本身的调用顺序是不定的。


然后是

  • 21
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值