Unity中StartCoroutine和StartCoroutine_Auto方法的区别

版权声明:若有错误之处,欢迎指正!如有侵权,请联系删除! https://blog.csdn.net/qq_21397217/article/details/80826572

Unity中StartCoroutine和StartCoroutine_Auto方法的区别

在Unity中可以看到一个 public Coroutine StartCoroutine_Auto(IEnumerator routine) 方法,没有任何注释说明,甚至在官方API文档中都看不到这个方法。

其实这个方法已经被废弃掉了,它本质上与 public Coroutine StartCoroutine(IEnumerator routine) 没有区别,因为 StartCoroutine_Auto 的内部直接调用了 StartCoroutine

看一下这两个方法的源码就能知道,调用 StartCoroutine_Auto 就是间接调用了 StartCoroutine ,而 StartCoroutine 调用了本地代码。

// Starts a coroutine.
public Coroutine StartCoroutine(IEnumerator routine)
{
    return this.StartCoroutine_Auto_Internal(routine);
}

[Obsolete("StartCoroutine_Auto has been deprecated. Use StartCoroutine instead (UnityUpgradable) -> StartCoroutine([mscorlib] System.Collections.IEnumerator)", false)]
public Coroutine StartCoroutine_Auto(IEnumerator routine)
{
    return this.StartCoroutine(routine);
}

[GeneratedByOldBindingsGenerator]
[MethodImpl(MethodImplOptions.InternalCall)]
private extern Coroutine StartCoroutine_Auto_Internal(IEnumerator routine);

猜你喜欢

转载自blog.csdn.net/qq_21397217/article/details/80826572