ScriptableObject

什么是ScriptableObject?

   直译过来就是“脚本化对象”,换言之这类作为存储结构化的数据来使用,并写入Unity的资源.asset文件去存储一组数据,取用的时候直接作为一个数据对象拿来用,很方便。

ScriptableObject 有什么好处?

  • Unity用于创建不需要绑定到物体的对象,即非继承于Mono,该类继承于UnityEngine.Object
  • 存放编辑器或数据配置文件
  • 方便操作管理,可以可视化编辑
  • 取数据方便,ScriptableObject已经是可序列化的数据,不用像读取纯文本或xml那样还要繁琐耗时的数据解析过程

基本使用

方式一:

using System.Collections;

using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = "P", menuName = "P")]
public class P : ScriptableObject
{

    public int num=10;
}


然后在unity引擎中, Asset--->Create--->P,点击创建P.asset 文件

方式二:

脚本内编写

ScriptableObject.CreateInstance<MyScriptableObject >();

这会在内存中创建一个新的实例,用作临时修改等用途,然后在不使用的时候可以让GC回收。

什么时候使用

下面介绍一些常见的应用场景。

Data Objects和Tables

第一种最常见的就是数据对象和表格数据,我们可以在Assets下创建一个.asset文件,并在编辑器面板中编辑修改它,再提交这个唯一的一份资源给版本控制器。例如,本地化数据、清单目录、表格、敌人配置等(这些真的非常常见),但是

ScriptableObject的目的是只有一份,因此这里面不应该包括一些会根据实例不同而变化的数值。例如,我们在这个例子里没有声明敌人的生命值等变量,这是因为不同的敌人的生命值可能是不同的,这些属性应该在相应的MonoBehaviour里定义。

原文链接:https://blog.csdn.net/candycat1992/article/details/52181814

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值