|
scriptableobject是一个类,允许你存储大量的共享数据独立于脚本实例。不要混淆这类具有类似命名的serializableobject,这是编辑类和填充不同的目的。例如,你有一个脚本,有一百万个整数组成的数组进行预制。数组占用4MB的内存是由预制的拥有。每一次你实例化预设,你将得到一份该数组。如果你创建了10个游戏对象,那么你最终会对10个实例的数组数据40MB。
Unity序列化所有的原始类型,字符串,数组,列表,具体到团结如Vector3和自定义类的序列化的属性类型副本属于对象他们宣布。这意味着,如果你创建了一个scriptableobject和整数数组中存储的万宣布再将存储阵列实例。实例被认为自己的个人数据。scriptableobject领域,或任何UnityEngine的对象。领域,如MonoBehaviour,网格,对象等,存储参考作为反对的价值。如果你有一个参考的百万整数的scriptableobject脚本,统一将只存储一个参考脚本中的数据scriptableobject。在商店的scriptableobject阵列。一个预设,有一个参照scriptableobject 10情况下,拥有4MB的数据,将大约4MB和40MB在其他的实例分析。
预期用途的情况下使用scriptableobject是避免拷贝值减少内存使用,但是你也可以使用它来定义可插拔的数据集。这方面的一个例子就是想象中的RPG游戏NPC商店。您可以创建自定义shopcontents scriptableobject多资产,每个定义一组,可供购买的物品。在一个场景中的游戏有三个区,每个区可以提供不同层次的项目。你的店脚本会参考shopcontents定义什么项目都可以。请参阅脚本参考例子。
一旦你定义了一个scriptableobject派生类,你可以使用createassetmenu属性使它容易使用你的类创建自定义资产。
提示:使用scriptableobject参考在检查时,你可以双击参考场为你的scriptableobject打开督察。您还可以创建自定义编辑器定义为你的类型来帮助管理这个数据是检查员的样子。
流动资产
|
|