Unity ScriptObject创建Asset文件
创建ScriptObject可以创建带序列化的资源,只保存数据不用绑定在游戏对象上。创建出来的本子资源可以通过资源加载到游戏里使用。这里介绍一下使用Resources加载。
创建好的asset文件也可以在Inspector中进行编辑。
using System.Collections.Generic;
using UnityEngine; [CreateAssetMenu]
public class ChatConfig : ScriptableObject
{
[SerializeField]
public List<string> ChatContent;
}
这里写一个简单的数据。
其中[CreateAssetMenu]属性可以在Create里点击对应名称创建asset文件。如下图


可以直接在Inspector界面直接编辑数据
使用Resources Load类型为ChatConfig的对象就可以加载到所有数据,例如
var content = Resources.Load<ChatConfig>("ChatConfig");
同时也可以通过编写代码来创建asset文件,代码中需要UnityEditor,所以代码要放到Editor文件夹下。如果需要批量生成asset,使用代码会更方便一些。
using UnityEditor;
using UnityEngine; public class CreateAssetEditor
{
[MenuItem("Assets/Create ScriptObject")]
static void CreateScriptObject()
{
ChatConfig config = ScriptableObject.CreateInstance<ChatConfig>();
config.ChatContent = new System.Collections.Generic.List<string>
{
"A",
"B"
}; AssetDatabase.CreateAsset(config, "Assets/Resources/NewChatConfig.asset");
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
}
其中创建了实例后可以对数据进行一个初始化。使用代码时创建asset时,就可以不使用[CreateAssetMenu]属性,以上效果如下图

红框内的就是使用unity[MenuItem]来扩展编辑器直接创建asset的效果
Unity ScriptObject创建Asset文件的更多相关文章
- Unity创建asset文件的扩展编辑器
using UnityEngine; using UnityEditor; using System.IO; public class CreateAsset : EditorWindow { pri ...
- 使用ScriptableObject创建.asset文件
.asset一般用来存储一些配置,比如SDK初始化的相关参数. using System.Collections.Generic; using UnityEngine; namespace XXX { ...
- unity, 由scriptableObject创建.asset
由继承自scriptableObject的类X创建.asset文件. 假设类X的定义为: [System.Serializable] public class X : ScriptableObject ...
- 如何在Android Studio中创建jniLib和asset文件夹 2
1.创建asset文件夹 如图进行操作 2.创建jniLib文件夹 —打开app下面的gradle文件(不是project的gradle) —在gradle文件的Android标签里面添加 sourc ...
- Unity中一键创建常用文件夹
Unity中一键创建常用文件夹 说明 项目测试版本Unity5.3. 这个一个小工具:功能非常简单,就是一键给新建工程添加所有文件夹.到此结束. 但是具体咋操作呢? 与把大象装进冰箱一样,三步,下载代 ...
- Lua------------------改善Unity编辑器对Lua文件的支持
原创 2017年03月10日 18:44:22 标签: Unity / lua / 编辑器 952 当前版本的Unity(截至Unity5.5.x)中TextAsset类不支持后缀为lua的文件,将l ...
- 在Unity中创建可远程加载的.unity3d包
在一个Unity项目中,发布包本身不一定要包括所有的Asset(译为资产或组件),其它的部分可以单独发布为.unity3d,再由程序从本地/远程加载执行,这部分不在本文讨论范围.虽然Unity并没有直 ...
- Unity VS 创建脚本自动添加头注释-时间-描述-作者等信息
Unity生成脚本自动添加头注释 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心 ...
- lua------------------Unity3D研究院编辑器之打开unity不可识别的文件(十三)
Unity3D研究院编辑器之打开unity不可识别的文件(十三) 雨松MOMO [Unity3D拓展编辑器] 围观8597次 9 条评论 编辑日期:2017-03-02 字体:大 中 小 有些特殊 ...
随机推荐
- 关于[神州数码信息安全DCN杯/信息安全管理与评估]的一些经验之谈
前阵子参加了神州数码的比赛,赛后有如下经验分享,给还没参加过的朋友分享一下心德以及要注意的坑. 先科普一下这个比赛的三个阶段: 第一阶段主要是考网络部分的,例如搭建wifi以及防火墙诸如此类的设备. ...
- 137.Single Number II---位运算---《剑指offer》40
题目链接:https://leetcode.com/problems/single-number-ii/description/ 题目大意:给出一串数,每个数都出现三次,只有一个数只出现一次,把这个出 ...
- nginx location 指令意义
基本语法:location [=|~|~*|^~] /uri/ { … } = 严格匹配.如果这个查询匹配,那么将停止搜索并立即处理此请求.~ 为区分大小写匹配(可用正则表达式)!~为区分大小写不匹配 ...
- C语言花括号
由于C语言本身就是函数式语言,说白了,C程序就是由函数构成的! 所以花括号肯定是用在函数之中,包括函数中的各种流程控制语句中. 实际上,C程序中花括号{}的作用:就是把多个单条语句用花括号{}括起来组 ...
- redis关闭保护模式
1. set key出现的报错 在192.168.56.57客户端登录192.168.56.56的redis服务器时,报错如下: [root@localhost src]# ./redis-cli - ...
- EF – 7.一对多关联
5.6.8 <一对多关联(上)> 5.6.9 <一对多关联(下)> 一对多的关联,可以说是整个数据库应用程序中最常见的一种关联类型了,因此,必须高度重视这种关联类型CRUD的实 ...
- jmeter----计数器
在测试过程中,往往需要一些有一定规则的数字,这个时候,可以使用配置元件中的计数器去实现. 一.界面显示 二.配置说明 1.名称:标识 2.注释:备注 3.启动:是指计数器开始的值 4.递增:每次增加的 ...
- Windows下 Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Tensorflow 需要 Python 3.5/3.6 64bit 版本: 具体的安装方式可查看:https://www.tensorflow.org/install/install_window ...
- 解决 VUE 微信 IOS 路由跳转问题
watch: { "$route"(){ if (/iPhone|mac|iPod|iPad/i.test(navigator.userAgent)) { location.hre ...
- 移动端禁止图片长按和vivo手机点击img标签放大图片,禁止长按识别二维码或保存图片【转载】
移动端禁止图片长按和vivo手机点击img标签放大图片,禁止长按识别二维码或保存图片 img{ pointer-events: none; } 源文地址:https://www.cnblogs.com ...