Unity ScriptObject创建Asset文件
生活随笔
收集整理的這篇文章主要介紹了
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的效果
總結
以上是生活随笔為你收集整理的Unity ScriptObject创建Asset文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WmS详解(一)之token到底是什么?
- 下一篇: RT-thread rt_kprintf