【 Unity 】--- 初识 Scriptable Objects

【 Unity 】--- 初识 Scriptable Objects

  • 一、ScriptableObject 与 MonoBehavour 对比
  • 二、简单 ScriptableObject 的创建
  • 三、Scriptable Objects 的使用情况
    • 1. Scriptable Objects as a "Data Container"
    • 2. Scriptable Objects as "Enum States"
    • 3. Runtime Data Editing

  • 在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)