Unity代码中出现死循环导致无响应的一种解决方案

我们在使用Unity的时候,代码中如果使用了while一类的语句,一旦出现死循环,就会导致Unity编辑器卡死,这让人非常抓狂,因为遇到这种情况,对于我来说只能是强制结束Unity的进程。不但影响了心情,而且有时候甚至没有保存的场景就丢失了,虽然丢失有恢复的方法,但我还是想寻求一种其它方式。

由于参照网上的教程没有能够解决出现的这个问题,所以想了一个简单的方案,如果大家有好的方案,请留言告知,谢谢! 如果找到新的方式,我也会更新这篇文章。

转载请注明出处:https://www.jianshu.com/p/4ef259e24860

我想到的这种解决方案很简单,如下:
1、首先在你的全局配置里面定义一个全局的变量。

public class Config
{
    public static bool WHILE_SAFE_SWITCH = true;
}

2、在你认为可能出现死循环的地方加入这个开关。

void Start()
{
    while (true && Config.WHILE_SAFE_SWITCH)
    {
    }
}

3、当出现死循环的时候加断点Attach一下UnityEditor。

加断点

4、修改Config.WHILE_SAFE_SWITCH的值为false。
修改值

此时,Unity 编辑器就会暂停了。你需要做的就是点击下运行按钮,让UnityEditor真正停下来。
第四步需要注意的是,需要执行的表达式直接是配置类。

你可能感兴趣的:(Unity代码中出现死循环导致无响应的一种解决方案)