本文主要是介绍Unity (编辑器)数据持久化 之 ScriptableObject初识与创建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.什么是ScriptableObject
ScriptableObject - Unity 手册
如题,一个可以在Unity编辑器中方便编辑数据的工具
一个脚本继承该类,并且序列化或者有公共变量,即可在Inspector窗口看到它们
其特点:
Q:是否可以将 ScriptableObject的数据保存到本地?
A:可以,可以通过Json的序列化与反序列化保存 ScriptableObject的数据
2.创建一个ScriptableObject文件
2.1 使用CreateAssetMenu(建议)
先继承ScriptableObject!!!!!!!!!!!!!!!!!!!!!!!!
使用CreateAssetMenu创建一个ScriptableObjec配置文件
[CreateAssetMenu(fileName ="文件名" ,menuName ="菜单名",order =0)]
示例:
当我的脚本中写了如下变量之后:
public int a;public string b;[SerializeField]private GameObject c;
该文件就会出现对应的变量
总览:
[CreateAssetMenu(fileName ="文件名" ,menuName ="菜单名",order =0)]
public class LearnScripttableObject : ScriptableObject
{public int a;public string b;[SerializeField]private GameObject c;
}
2.2 使用MenuItem
示例:
public class TextMenuItem : MonoBehaviour
{//使用该特性在unity编辑器菜单栏中显示一个手势[MenuItem("菜单栏/手势")]public static void NewFunc(){ }
}
之后使用ScriptableObject的静态方法进行创建数据并保存到本地
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数据的来源
LearnScripttableObject learnScripttable = ScriptableObject.CreateInstance<LearnScripttableObject>();
第二三行代码是在指定路径下保存该文件为指定名字
//创建数据源文件 AssetDatabase.CreateAsset(learnScripttable,"Assets/Resources/sob数据文件.asset");//保存文件AssetDatabase.SaveAssets();
这篇关于Unity (编辑器)数据持久化 之 ScriptableObject初识与创建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!