Unity3D|-使用ScriptableObject脚本化对象来制作一个简单的对象池

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; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwdpsw.html