用ScriptableObject管理数据
- ScriptableObject于MonoBehaviour对比
相对于MonoBehaviour 运行周期只有Awake(),OnEnable(),OnDisable()和OnDistroy()
ScriptableObject不是直接绑定在Player Loop上
是具有可调用方法的普通对象
MonoBehaviour可以作为组件附加在GameObject上
ScriptableObject则不能,它们通常作为项目资源创建。一般通过自定义编辑脚本或创建资源菜单的属性创建。ScriptableObject可以在MonoBehaviour中引用,以访问可用的数据和方法
SctiptableObject可作为数据容器
每个实例都将拥有所有数据的完整副本(包括游戏对象和转换组件)这样会占用内存并且影响性能
如果这些数据不属于实例,类似数据一样在GameObject之间共享那么可用将这些数据存储为ScriptableObjecy。当MonoBehaviour引用ScriptableObject时,它们只是存储指向ScriptableObject的引用,而不是ScriptableObject的完整副本
- ScriptableObject可用作Enum states
使用ScriptableObject创建扩展所生成的的统计信息都由名为Placeable Data的ScriptableObject类型定义的。这些统计信息定义规则
- 运行时数据编辑
ScriptableObject检视面板可以在运行模式下进行修改/编辑数据。这是因为ScriptableObject没有与场景的运行绑定