Unity3D—关于Coroutine和Invoke的一些笔记

Coroutine和Invoke学习笔记

  • 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类等)中,
由于不同角色间的动画、时间处理可能存在不同,个人还是更习惯于将这部分代码写在各自的类中方便调整

你可能感兴趣的:(学习笔记)