【 Unity 】--- 初识 Scriptable Objects
- 在B站 咖喱饭游戏 Up主的视频中,看到Unity社区开放项目中统一用到了 Scriptable Objects ,所有向专业看齐,在此和大家一起学习 Scriptable Objects 的使用。
- 如果笔记有不对或大佬有更好的见解,请不吝赐教,多多指点。
优点:ScriptableObjects 更好地管理数据。
一、ScriptableObject 与 MonoBehavour 对比
MonoBehavour:
using UnityEngine;
public class SamleMonoBehaviour : MonoBehavour
{
private void Awake() {}
private void OnEnable() {}
private void Start() {}
private void Update() {}
private void OnDisable() {}
}
ScriptableObject:
using UnityEngine;
public class SampleScriptableObject : ScriptableObject
{
private void Awake() {}
private void OnEnable() {}
private void OnDisable() {}
private void OnDestroy() {}
}
可见 ScriptableObject 没有 Update ,因为它本来就不是直接绑定到 Player Loop 上的,而是作为 具有可调用方法的普通对象。
二、简单 ScriptableObject 的创建
using UnityEngine;
// 在Create列表里添加创建SampleScriptableObject按钮
[CreateAssetMenu(menuName = "Scriptable-Objects/Sample")]
public class SampleScriptableObject : ScriptableObject
{
private void Awake() {}
private void OnEnable() {}
private void OnDisable() {}
private void OnDestroy() {}
}
创建ScriptableObject实例 的步骤:在项目中右键,在Create视图中找到 Scriptable Object 点击创建。
三、Scriptable Objects 的使用情况
1. Scriptable Objects as a “Data Container”
ScriptableObject 可以做为数据容器。
2. Scriptable Objects as “Enum States”
ScriptableObject 可用作 Enum States。
3. Runtime Data Editing
运行时进行数据编辑,在运行时修改数据,退出运行模式后,修改依然能保存下来
本文介绍了Unity中的Scriptable Objects,对比了它与MonoBehaviour的区别,并详细讲解了如何创建及使用Scriptable Objects。Scriptable Objects作为数据容器,可以用于Enum States,并支持运行时数据编辑且保存修改。

1070

被折叠的 条评论
为什么被折叠?



