Unity ScriptObject创建Asset文件

创建ScriptObject可以创建带序列化的资源,只保存数据不用绑定在游戏对象上。创建出来的本子资源可以通过资源加载到游戏里使用。这里介绍一下使用Resources加载。

创建好的asset文件也可以在Inspector中进行编辑。

1 using System.Collections.Generic;
2 using UnityEngine;
3 
4 [CreateAssetMenu]
5 public class ChatConfig : ScriptableObject
6 {
7     [SerializeField]
8     public List<string> ChatContent;
9 }

这里写一个简单的数据。

其中[CreateAssetMenu]属性可以在Create里点击对应名称创建asset文件。如下图

可以直接在Inspector界面直接编辑数据

使用Resources Load类型为ChatConfig的对象就可以加载到所有数据,例如

1 var content = Resources.Load<ChatConfig>("ChatConfig");

同时也可以通过编写代码来创建asset文件,代码中需要UnityEditor,所以代码要放到Editor文件夹下。如果需要批量生成asset,使用代码会更方便一些。

 1 using UnityEditor;
 2 using UnityEngine;
 3 
 4 public class CreateAssetEditor
 5 {
 6     [MenuItem("Assets/Create ScriptObject")]
 7     static void CreateScriptObject()
 8     {
 9         ChatConfig config = ScriptableObject.CreateInstance<ChatConfig>();
10         config.ChatContent = new System.Collections.Generic.List<string>
11         {
12             "A",
13             "B"
14         };
15 
16         AssetDatabase.CreateAsset(config, "Assets/Resources/NewChatConfig.asset");
17         AssetDatabase.SaveAssets();
18         AssetDatabase.Refresh();
19     }
20 }

其中创建了实例后可以对数据进行一个初始化。使用代码时创建asset时,就可以不使用[CreateAssetMenu]属性,以上效果如下图

红框内的就是使用unity[MenuItem]来扩展编辑器直接创建asset的效果

 

转载于:https://www.cnblogs.com/dawenhao/p/10413466.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值