使用ScriptableObject创建.asset文件

简介: .asset一般用来存储一些配置,比如SDK初始化的相关参数。 using System.Collections.Generic; using UnityEngine; namespace XXX { [CreateAssetMenu(fileName="xxx", menuNa...

.asset一般用来存储一些配置,比如SDK初始化的相关参数。

using System.Collections.Generic;
using UnityEngine;

namespace XXX
{
    [CreateAssetMenu(fileName="xxx", menuName="xxx")]
    public class CommonConfig : ScriptableObject
    {
        [HideInInspector]
        public List<string> Keys;

        [HideInInspector]
        public List<string> Values;

        [System.Serializable]
        public class Param
        {
            public string strA = "";
            public string strB = "";
            public string strC = "";
            public string strD = "";
        }

        public Param paramXXA = null;
        public Param paramXXB = null;

        private Dictionary<string, string> Map;

        private static CommonConfig instance;

        public static CommonConfig Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = (CommonConfig)ResourceManager.LoadAsset("assets/xxx.asset", typeof(CommonConfig));
                }

                return instance;
            }
        }

        private void Awake()
        {
            UpdateData();
        }

        private void UpdateData()
        {
            Map = new Dictionary<string, string>(Keys.Count);

            for (int i = 0; i < Keys.Count; i++)
            {
                Map.Add(Keys[i], Values[i]);
            }
        }

        public string Get(string key)
        {
            string value;
            if (Map.TryGetValue(key, out value))
            {
                return value;
            }

            return key;
        } 
    }
}

定义为public的变量就存储在xxx.asset中,通过 CommonConfig.Instance.Get 直接获取数据。

 

如果在运行时需要修改数据,需要使用下面的

EditorUtility.SetDirty(CommonConfig.Instance);
AssetDatabase.SaveAssets();
目录
相关文章
|
10月前
|
IDE Java 开发工具
导入jar包后无法找到`com.aliyun.teaopenapi.models.Config`这个类
导入jar包后无法找到`com.aliyun.teaopenapi.models.Config`这个类
764 3
|
3月前
|
Shell
Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
【2月更文挑战第17天】Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
166 2
|
3月前
复制和转换文件 - dd
【1月更文挑战第10天】
48 2
|
11月前
请教如何配置img.alicdn.com而不是ossgw.alicdn.com
请教如何配置img.alicdn.com而不是ossgw.alicdn.com
|
应用服务中间件
如何修改项目的访问路径context-root?
如何修改项目的访问路径context-root?
83 0
如何修改项目的访问路径context-root?
|
iOS开发
iOS开发 -product文件夹下有两个相同的.app文件怎么办,该怎么删除
iOS开发 -product文件夹下有两个相同的.app文件怎么办,该怎么删除
148 0
iOS开发 -product文件夹下有两个相同的.app文件怎么办,该怎么删除
|
分布式计算 Hadoop 关系型数据库
导入 Import--增量导入--Append 模式 | 学习笔记
快速学习 导入 Import--增量导入--Append 模式
312 0
导入 Import--增量导入--Append 模式 | 学习笔记