是否可以(甚至以一种怪异的方式)从另一个线程调用EditorApplication
函数?更具体地说,我想从另一个线程(不是Unity主线程)退出播放模式。
我的用例是,我试图编写一个小片段,以在编辑器中检测无限循环,并在检测到情况时中断循环。到目前为止,我发现的“最好”方法是终止进程,但这并没有真正的帮助。
答案 0 :(得分:0)
您不能。从某种意义上说,Unity线程是基于框架的,因此它不同于 normal 程序。您可以要求Unity主线程运行方法,方法是设置每帧要检查的布尔值,或者设置<Action>
或<Task>
队列,如remy_rm建议的链接中所解释的那样。在上面发表评论。
但是这些黑客不能在统一主线程上运行方法,它们只是优雅地要求Unity主线程本身来运行它。在正常情况下,这种差异虽然微妙,但对您的问题却至关重要。您想在主线程上陷入死循环时调用该方法,以杀死它,但不是这种情况,Unity的主线程将从不到达Update()
中的位置它应该自杀。您基本上是将一封信发送给永远不会回家的人,如果他被卡在某个地方而无法回家,他将永远不会阅读。
在这些情况下,想到的最好的方法是连接调试器并从中停止线程。