如何从另一个线程退出播放模式

时间:2019-08-20 11:34:49

标签: unity3d

是否可以(甚至以一种怪异的方式)从另一个线程调用EditorApplication函数?更具体地说,我想从另一个线程(不是Unity主线程)退出播放模式。

我的用例是,我试图编写一个小片段,以在编辑器中检测无限循环,并在检测到情况时中断循环。到目前为止,我发现的“最好”方法是终止进程,但这并没有真正的帮助。

1 个答案:

答案 0 :(得分:0)

您不能。从某种意义上说,Unity线程是基于框架的,因此它不同于 normal 程序。您可以要求Unity主线程运行方法,方法是设置每帧要检查的布尔值,或者设置<Action><Task>队列,如remy_rm建议的链接中所解释的那样。在上面发表评论。

但是这些黑客不能在统一主线程上运行方法,它们只是优雅地要求Unity主线程本身来运行它。在正常情况下,这种差异虽然微妙,但对您的问题却至关重要。您想在主线程上陷入死循环时调用该方法,以杀死它,但不是这种情况,Unity的主线程将从不到达Update()中的位置它应该自杀。您基本上是将一封信发送给永远不会回家的人,如果他被卡在某个地方而无法回家,他将永远不会阅读。

在这些情况下,想到的最好的方法是连接调试器并从中停止线程。