首页 > 解决方案 > 关于 scriptableObject 的困惑

问题描述

当我们仍然制作 ScriptableObject 的多个副本/实例时,它对内存优化有什么好处。?

在过去,脚本附加到预制件上,并且在实例化时,每个脚本都用于在内存中创建/保留自己的插槽,这是一种不好的方法,因为同一脚本有多个副本。

我们在可编写脚本的对象中所做的是:创建可编写脚本的对象,从 Asset>Create> 创建其多个实例,在这些实例中提供数据并在需要时访问数据。它与在预制件上附加脚本并实例化它或制作包含数据的 ScriptableObject 的多个副本并从中访问数据有何不同。毕竟,我们也在 scriptableobject 中制作了多个副本。

请解释一下 ScriptableObject 的多个副本如何对内存友好,然后是实例化的预制件的多个副本。

标签: c#unity3doptimizationencodingscriptable-object

解决方案


ScriptableObjectsMonoBehaviours与它们没有要处理的所有数据相比,它们要轻得多GameObjectUnity.Object是的,与 a 相比,它们仍然有一些开销System.Object,并且有几个可用的生命周期钩子,但它们也不会被放入Update队列之类的东西中。

您应该将 ScriptableObjects 视为纯数据对象(例如,设置/配置),供您的设计人员在 Unity 中进行编辑。


推荐阅读