Unity ScriptableObject加载行为

时间:2019-02-13 00:03:28

标签: unity3d

假设我具有以下两个ScriptableObject:

ForceColumnEncryption

游戏有多个主题,每个主题都有多个级别。主题和级别以.asset文件形式存在。

现在,当我建立一个只需要public class Topic : ScriptableObject { public string Title; public Sprite TitleImage; public Level[] Levels; } public class Level : ScriptableObject { // Various level properties here (strings, Sprite, AudioClip, ...) } Topic.Title的主题选择屏幕时,Unity将如何处理Topic.TitleImage字段中引用的ScriptableObject?会加载该数据吗?

1 个答案:

答案 0 :(得分:2)

如果Unity从内存中加载的任何其他对象引用了一个对象,则它将被加载到内存中。

因此,如果您的Levels数组中有任何内容,它将被加载。

通常这不是问题,ScriptableObjects应该相当轻巧,但是您应该知道引用的引用,例如,如果您的关卡包含指向GameObject预制件的链接,那么GameObject引用的任何内容也将被加载,这一直贯穿整个链条。