【发布时间】:2016-06-19 10:03:43
【问题描述】:
本帖的一位cmet:Checking condition and calling continuous method with periods of delay unity,说:
永远不要使用协程。他们从 c# 开发人员的角度教坏习惯,如果你从事常规 c# 工作会导致私刑
我的问题是,这是为什么呢?这只是在 Unity 中还是在一般情况下? Unity 的官方虚拟现实示例https://www.assetstore.unity3d.com/en/#!/content/51519 大量使用它们(尤其是传单示例),而不是 Invoke 或 Invoke Repeating,这些示例项目最近也发布了。
【问题讨论】:
-
嗨 Martin,除了 Cory 的解释之外,很简单 对于初学者 在 99% 的情况下,人们使用协程的唯一原因是,令人难以置信简而言之,他们没有意识到存在 Invoke 和 InvokeRepeating 调用,或者其次,他们只是不知道 Update 调用,在 Unity 中。老实说就是这么简单。请注意(如果您是专家)您必须在适当的地方使用 Invoke/Repeating,并且您完全理解 Update 和 Coroutine 是同样的事情。
-
打个比方,有点像c中的“++”运算符。 (a) 这是一个非常糟糕的想法,是软件工程中最糟糕的想法 (b) 1000 名业余爱好者初学者,也许有 2 人知道这意味着什么,++a 和 a++ 之间的区别,以及其他细微之处 (c) 当然,有时专家会将其用作一种速记来表示算法等。
-
(你提到“unity的lol样本”,所有的unity文档和样本都不是开玩笑的,是毫无价值的行业传奇。还要注意这是一个虚拟现实样本,看在上帝的份上:99.999% 的 beginner 与“协程!”相关的问题是这样的:stackoverflow.com/a/35807346/294884)