Unity (编辑器)数据持久化 之 ScriptableObject初识与创建

1.什么是ScriptableObject

ScriptableObject - Unity 手册

如题,一个可以在Unity编辑器中方便编辑数据的工具

一个脚本继承该类,并且序列化或者有公共变量,即可在Inspector窗口看到它们

其特点:

Q:是否可以将 ScriptableObject的数据保存到本地?

A:可以,可以通过Json的序列化与反序列化保存 ScriptableObject的数据

2.创建一个ScriptableObject文件

2.1 使用CreateAssetMenu(建议)

先继承ScriptableObject!!!!!!!!!!!!!!!!!!!!!!!!

使用CreateAssetMenu创建一个ScriptableObjec配置文件

cs 复制代码
[CreateAssetMenu(fileName ="文件名" ,menuName ="菜单名",order =0)]

示例:

当我的脚本中写了如下变量之后:

cs 复制代码
  public int a;
  public string b;
  [SerializeField]
  private GameObject c;

该文件就会出现对应的变量

总览:

cs 复制代码
[CreateAssetMenu(fileName ="文件名" ,menuName ="菜单名",order =0)]
public class LearnScripttableObject : ScriptableObject
{
    public int a;
    public string b;
    [SerializeField]
    private GameObject c;
}

2.2 使用MenuItem

示例:

cs 复制代码
public class TextMenuItem : MonoBehaviour
{
    //使用该特性在unity编辑器菜单栏中显示一个手势
    [MenuItem("菜单栏/手势")]
    public static void NewFunc()
    { 
    
    
    
    }
}

之后使用ScriptableObject的静态方法进行创建数据并保存到本地

cs 复制代码
public class TextMenuItem : MonoBehaviour
{
    //使用该特性在unity编辑器菜单栏中显示一个手势
    [MenuItem("菜单栏/手势")]
    public static void NewFunc()
    {
        //创建实例
        LearnScripttableObject  learnScripttable = ScriptableObject.CreateInstance<LearnScripttableObject>();
        //创建数据源文件       
        AssetDatabase.CreateAsset(learnScripttable,"Assets/Resources/sob数据文件.asset");
        //保存文件
        AssetDatabase.SaveAssets();
        //刷新
        AssetDatabase.Refresh();
    }
}

点击手势就会执行特性下的函数(NewFunc)


拆解:

第一行行代码,是abc数据的来源

cs 复制代码
 LearnScripttableObject  learnScripttable = ScriptableObject.CreateInstance<LearnScripttableObject>();

第二三行代码是在指定路径下保存该文件为指定名字

cs 复制代码
 //创建数据源文件       
 AssetDatabase.CreateAsset(learnScripttable,"Assets/Resources/sob数据文件.asset");
 //保存文件
 AssetDatabase.SaveAssets();
相关推荐
互联网散修8 小时前
鸿蒙实战:图片编辑器——高性能纹理马赛克画笔
华为·编辑器·harmonyos·纹理马赛克
wbc103155581 天前
基于 VSCode + Icarus 的 Verilog 编译和仿真
ide·vscode·编辑器
似夜晓星辰1 天前
Markdown文本编辑器Typora平替
编辑器·github
谷哥的小弟1 天前
(最新版)VSCode安装图文详解教程
ide·vscode·编辑器·教程·前端开发·图文
xiaoliuliu123451 天前
LaTeX 2023 (TeX Live + TeXstudio) 安装与汉化教程 Windows版:自定义路径+编辑器配置指南
windows·编辑器
IOT.FIVE.NO.11 天前
Codex+Vscode+Remote ssh+ 服务器自定义第三方API配置保姆级教程
ide·vscode·编辑器
SpiderPex2 天前
Vibe Coding 开发流程心得:从入门到规范化的踩坑记录
vscode·编辑器·ai编程·开发流程·vibe coding
晚风吹红霞2 天前
Vim编辑器从入门到熟练 —— 三种模式与常用命令详解
linux·编辑器·vim
SWAGGY..2 天前
Linux系统编程:(十一)进程状态&&Linux中的僵尸状态
linux·服务器·编辑器·vim
huangfuyk3 天前
前端使用Cursor编辑器方面遇到的问题及注意细节
前端·编辑器·ai编程·cursor