zoukankan      html  css  js  c++  java
  • 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的效果

  • 相关阅读:
    Android Studio无法预览xml布局之解决方法(两种)
    ssm web.xml配置解析
    ssm框架下实现文件上传
    spring mvc使用@InitBinder 标签对表单数据绑定
    Jquery实现相对浏览器位置固定、悬浮
    asp,php,jsp 不缓存网页的办法
    Spring 2.5
    ERROR 1366 (HY000): Incorrect string value: 'xB3xA4xC9xB3' for column
    DELPHI SOKET 编程--使用TServerSocket和TClientSocket
    SVN switch 用法总结
  • 原文地址:https://www.cnblogs.com/dawenhao/p/10413466.html
Copyright © 2011-2022 走看看