Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 团结冻结在“上”;开始MonoManager重新加载程序集;。线程在停止事件时终止_Unity3d_Freeze - Fatal编程技术网

Unity3d 团结冻结在“上”;开始MonoManager重新加载程序集;。线程在停止事件时终止

Unity3d 团结冻结在“上”;开始MonoManager重新加载程序集;。线程在停止事件时终止,unity3d,freeze,Unity3d,Freeze,我有一个统一的项目,我认为它在游戏和编译事件上会被冻结。 据我所知,可能是因为一些相关的事情。 似乎在播放模式停止/启动之间持续存在的阻塞网络线程可能是导致问题的原因。 我已经研究了如何跟踪和停止线程,这样当我在编辑器中停止播放模式时,我就可以处理它了,但据我所知,您可以处理自己创建的线程 由于项目冻结,没有机会进行调试,因此没有机会检查哪个线程导致了问题(如果有),因为我的项目很大,所以我的问题是,当您停止时,是否有一种干净的方法来停止/终止编辑器上的所有活动线程 提前感谢您的帮助 冻结发生时

我有一个统一的项目,我认为它在游戏和编译事件上会被冻结。 据我所知,可能是因为一些相关的事情。 似乎在播放模式停止/启动之间持续存在的阻塞网络线程可能是导致问题的原因。 我已经研究了如何跟踪和停止线程,这样当我在编辑器中停止播放模式时,我就可以处理它了,但据我所知,您可以处理自己创建的线程

由于项目冻结,没有机会进行调试,因此没有机会检查哪个线程导致了问题(如果有),因为我的项目很大,所以我的问题是,当您停止时,是否有一种干净的方法来停止/终止编辑器上的所有活动线程

提前感谢您的帮助

冻结发生时,这是unity任务管理器。请注意,CPU为0%


您好,这不是一个解决方案,但可能会对您有所帮助。如果您使用的是某些TCPclient或UPDclient,请记住,在停止编辑器时需要关闭客户端

using UnityEngine;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class DetectStopEditor : MonoBehaviour
{


// Start is called before the first frame update
void Start()
{
#if UNITY_EDITOR
    EditorApplication.playModeStateChanged += Algo;
#endif
}
#if UNITY_EDITOR
public void Algo(PlayModeStateChange state)
{
   
    if (state == PlayModeStateChange.ExitingPlayMode)
    {
        //DO SOMETHING
        Debug.Log(string.Format("[{0}] Exiting playmode.",state.ToString()));
    }
}
#endif
}

非常感谢你的回答。在五月的案例中,当我删除“Temp”和“Library”文件夹并重新导入项目时,问题就不再出现了。如果我能复制这个问题,我会检查你的建议