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

news2024/9/20 7:50:11

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();


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2098045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nodejs的详细安装过程与步骤

目录 一、下载node.js 二、安装程序 三、检查是否安装成功 四、新建文件夹 五、配置环境变量 一、下载node.js 下载地址&#xff1a;Node.js — Run JavaScript Everywhere 选择想要下载的版本&#xff0c;点击Download Node.js 二、安装程序 &#xff08;1&#xff0…

食家巷桃酥,一口酥脆,满是幸福

在美食的世界里&#xff0c;总有一些味道能瞬间勾起我们的回忆&#xff0c;食家巷桃酥便是其中之一。初见食家巷桃酥&#xff0c;那金黄的色泽便让人眼前一亮。每一块桃酥都像是一件小小的艺术品&#xff0c;边缘微微隆起&#xff0c;中间微微凹陷&#xff0c;散发着诱人的香气…

文产数字化,古迹存久远——福永街道凤凰古村RV数字全景在线游览平台上线

深圳宝安区宣传文化体育发展专项资金资助、福永街道党建服务中心指导的“凤凰古村文物抢救性挖掘与传承现实虚拟&#xff08;RV&#xff09;数字化工程”项目自从2024年6月份正式启动以来&#xff0c;经紧锣密鼓地调研、采集和制作&#xff0c;目前&#xff0c;该项目已正式完工…

【HarmonyOS 4.0】应用级变量的状态管理

组件级变量的状态管理装饰器仅能在页面内&#xff0c;即一个组件树上共享状态变量。 如果开发者要实现应用级的&#xff0c;或者多个页面的状态数据共享&#xff0c;就需要用到应用级变量的状态管理。 1. LocalStorage&#xff08;LocalStorageProp/LocalStorageLink&#xff0…

软考有哪些科目一年考两次?

软考高级【系统分析师】及【系统架构设计师】是一年考两次的。 软考中级【软件设计师】和【网络工程师】也是一年考两次的。 其他科目一年都只开考一次&#xff0c;或者上半年开考&#xff0c;或者下半年开考&#xff0c;具体考试时间可看下图。 软考考题类型/数量/考试方式&…

西安运营服务体系完善的产业园在哪里?

在西安这片充满历史底蕴与创新活力的土地上&#xff0c;有一处运营服务体系完善的产业园正熠熠生辉&#xff0c;成为众多企业追逐梦想、实现发展的理想之地。 这个产业园坐落在 [西安市长安区东长安街481号]的西安国际数字影像产业园&#xff0c;园区正以其卓越的运营服务体系吸…

为什么音视频SDK成为线上招投标不可或缺的技术支持?

随着信息技术的飞速发展和数字化转型的深入&#xff0c;线上招投标已成为现代商业活动中不可或缺的部分。这一过程不仅提高了招投标的效率&#xff0c;还增强了透明度和公平性。在这个过程中&#xff0c;音视频SDK&#xff08;软件开发工具包&#xff09;作为关键技术之一&…

nvm管理node版本解决node版本冲突问题

nvm管理node版本解决node版本冲突等乱七八糟的问题 说明一、node环境检查二、安装nvm三、node安装说明 本文主要内容为nvm的安装,包括node环境的检查,nvm下载安装以及不同版本的node安装 更新时间:2024/09/01 16:39 本文仅为记录学习轨迹,如有侵权,联系删除 一、node环…

webros机器人控制软件

一、可显示轨迹。 二、可显示机器人状态&#xff0c;如速度、位置等。 三、可以对机器人进行多点导航设置并下发导航点。 技术栈&#xff1a;rosbrige_server ,vue3,ros1,robotwebtool

美畅物联丨智能安防新趋势:IPC规格参数详解与选型建议

在畅联AIoT开放云平台的应用生态中&#xff0c;"端-边-网-云-用"这一核心理念始终是我们构建视频及AIoT底座平台的基石。其中&#xff0c;网络摄像机&#xff08;IPC&#xff0c;即Internet Protocol Camera&#xff09;&#xff0c;作为端侧设备的核心成员&#xff…

2024-09-02 Ubuntu固定USB串口名(包括1拖N的USB串口)

在运行Ubuntu系统的开发板上,如果使用可插拔的USB串口,有时候程序正在运行时,如果突然连接传感器的USB串口设备被插拔了一下,这时,会发现系统中的USB串口名发生了改变。例如,插拔之前是/dev/ttyUSB0,插拔之后变成了/dev/ttyUSB3。发生这种情况的时候,有时候会导致程序无…

Harbor部署docker私人仓库

1、新建虚拟机rhel9 2、配置网络 #修改内核参数使网卡名称为ethxxx grubby --update-kernel ALL --args net.ifnames0reboot #配置网络 vim /etc/NetworkManager/system-connections/eth0.connection 内容为&#xff1a;[connection] ideth0 typeethernet interface-nameeth0…

Git创建项目

方法一 1.在gitee中新建仓库demo01&#xff0c;并勾选开源许可证&#xff0c;完成后gitee上面的项目demo01里只包含一个LICENSE文件 2.直接在本地电脑中新建项目文件夹demo01&#xff0c;双击进入这个文件夹&#xff0c;右键Git bash here&#xff0c;输入 git clone https:…

git commit添加emoji表情

先看样板&#xff1a; 完整表情见&#xff1a;gitmoji | An emoji guide for your commit messages 中文解释见&#xff1a;https://github.com/liuchengxu/git-commit-emoji-cn 示例&#xff1a; git commit -m :wrench: 修改supervisor配置 git commit -m :zap: 使用C扩展…

24.9.1(康托展开)

上星期三: 补 24牛客多校 二 C 牛客传送门 思路: 赛时写模拟写的很臭,如果用dp写就很方便 代码如下: const int N2e610; const int mod1e97; ll n; char s[N][2]; int dp[N][2]; void solve(){cin >> n;for(int i1;…

别再被假WiFi坑!正规品牌教你如何慧眼识珠!随身wifi哪些才是正规品牌?全网最靠谱的随身wifi推荐!

如今的随身 WiFi 市场&#xff0c;可谓是热闹非凡。各种品牌如雨后春笋般涌现&#xff0c;让人眼花缭乱。然而&#xff0c;当流量告急时&#xff0c;我们也不能病急乱投医&#xff0c;随便购买随身 WiFi。毕竟&#xff0c;市场上的随身 WiFi 品牌五花八门&#xff0c;质量参差不…

活动系统开发之采用设计模式与非设计模式的区别-需求设计及拓展

通过活动系统流程图拆分成5个业务流程图 1、签到与滚动抽奖业务流程图 2、签到与答题领取奖品业务流程图 3、签到与抽奖业务流程图 4、答题与组团业务流程图 5、答题与美图分享业务流程图 6、总结 因业务流程相互嵌套&#xff0c;所以将每个系统模板化后可以动态组合目前的子业…

【卷起来】VUE3.0教程-02-模板语法

&#x1f341; 项目目录结构 在上面的案例中&#xff0c;我们创建出了一个vue项目&#xff0c;项目结构如下&#xff1a; .vscode&#xff1a;vscode工具的配置文件node_modules&#xff1a;Vue 项目的运行依赖文件public&#xff1a;资源文件夹&#xff08;浏览器图标&#x…

Leetcode Day18 堆

Python中关于堆的操作 注意, python默认的是最小堆 什么时候想到用堆 A: 流!或者我们只关心k个元素 373 查找和最小的前k对数字 给定两个以 非递减顺序排列 的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff…

Learing——protobuf(一)

目录 前言 一、protobuf的简介 二、编写一个.proto文件 1.选择使用的protobuf版本 2.指定命名空间&#xff08;package&#xff09; 3.定义一个“消息”&#xff08;message&#xff09; 4.定义消息字段 标量类型&#xff1a; 枚举类型(enum): 多选一类型(oneof)&…