Coroutine和Invoke学习笔记
Coroutine的使用笔记
调用与终止方式
Invoke的使用笔记
调用与终止方式
两者的对比
1- Invoke受Time.timeScale影响,并且无法避免(若可以还请指正)
Coroutine可以通过Time.unscaledDeltaTime,WaitForSecondsRealtime来执行不受Time.timeScale影响的代码
菜单、UI、HUD等可以考虑用Coroutine
2 - 当类所属游戏对象active为false时,函数中的StartCoroutine无法执行,而函数中的Invoke仍可以执行
如果在SetActive(true)前需要进行一些与本体无关的额外处理而需要推迟SetActive(true)(如登场时的光效动画等),考虑使用Invoke
若用Coroutine,就需要很多额外代码来调整各部件的出现时间、Start中调用的函数何时开始执行等,
或者就需要把动画和时间的处理函数写在其他类(如敌人或玩家角色的Manager类等)中,
由于不同角色间的动画、时间处理可能存在不同,个人还是更习惯于将这部分代码写在各自的类中方便调整