可编写脚本的对象是否会导致 Unity Editor 滞后?

问题描述

所以为了简单起见,我在我的项目中使用了 ScriptableObject,突然间我试图再添加一个,但编辑器变得如此滞后,以至于我无法继续处理该项目,处理起来太烦人了...

我在我的 Unity 项目中手动创建了很多 ScriptableObject。我的程序很简单,我只是从我的 Assets 文件夹中加载我的 ScriptableObject,然后用它们做一些事情。

我主要有 3 种类型的 ScriptableObject :

在 ScriptableObject 上链接的数据位于 Assets 的另一个文件夹中。

我尝试从 Unity 2019.4.14f1 升级到 2020.3.4f1 并且...没有任何变化,太多的延迟无法正确执行任何操作,每次单击文件夹时都需要几秒钟但是编辑器在冻结时开始显示一条消息(而不是根本不显示任何内容,只是不响应)它说 Projectbrowser.OnGUI.repaint 带有进度条。

此时我开始观察到延迟仅在我浏览项目中的一些 ScriptableObject 时发生,当我想在场景中编辑一些 c# 脚本或游戏对象时,消息永远不会出现,编辑器像以前一样流畅.

此时,当编辑器开始滞后时,我现在有大约 200 个 ScriptableObject。

也许我做错了什么?问题是否来自 ScriptableObject 相互引用?如果有人能给我一个提示,那就太好了:)

我正在使用 project2D,如果它可以帮助...

提前致谢。

解决方法

您可以使用 Profiler 来检测导致问题的原因以及哪个对象消耗了渲染或计算的时间。您可以找到 ScriptableObject 是否导致问题。你可以看看:

https://docs.unity3d.com/Manual/Profiler.html