ScriptableObject是一个用于生成单独Asset的结构。同时,它也能被称为是Unity中用于处理序列化的结构。
可以作为我们存储资源数据的有效方案。同时此资源可以作为我们AB包的有效资源!
ScriptableObject的特点:
不需要绑定到物体对象。
存放于编辑器或者作为一种资源存储。
操作方便,可视化动态修改。
读取数据方便,ScriptableObject已经是可序列化的数据。
可以在项目之间很好的复用而不会丢失数据。
注意的点制作ScriptableObject,为了制作ScriptableObject,继承ScriptableObject基类是首先要做的事情。这个时候,类名与Asset名必须要一样。另外,ScriptableObject的限制和MonoBehaviour是一样的。
实例化,通过ScriptableObject.CreateInstance来生成ScriptableObject。使用new操作符来生成是不行的。理由和MonoBehaviour是一样的,Unity生成Object的时候必须经过序列化。
保存,实例化完成后是将Object作为Asset进行保存。通过AssetDatabase.CreateAsset就能够生成Asset。 Asset的后缀名必须是.asset。如果是其他后缀名的话,Unity会无法识别。
GameObjectPoolList 继承自ScriptableObject,内容只有一个GameObjectPool类型的List,用于存储所有的池子using UnityEngine; using System.Collections; using System.Collections.Generic; public class GameObjectPoolList : ScriptableObject { //继承自ScriptableObject 表示把类GameObjectPoolList变成可以自定义资源配置的文件 public List<GameObjectPool> poolList; }