示例#1
0
        private void DebugAllConfigBtn_onClick()
        {
            TestLogData data = TestLogXmlConfig.GetData(0);

            Debug.LogFormat(
                "{0} -> Data: {1}",
                typeof(TestLogXmlConfig).Name,
                data.ToString()
                );

            data = TestLogXmlDocConfig.GetData(1);
            Debug.LogFormat(
                "{0} -> Data: {1}",
                typeof(TestLogXmlDocConfig).Name,
                data.ToString()
                );

            Debug.LogFormat(
                "{0} -> Data: {1}",
                typeof(TestLogJsonConfig).Name,
                TestLogJsonConfig.Get <TestLogJsonConfig>().data
                );

            Debug.LogFormat(
                "{0} -> Data: {1}",
                typeof(TestLogTxtConfig).Name,
                TestLogTxtConfig.Get <TestLogTxtConfig>().ToString()
                );
        }
示例#2
0
        /// <summary>
        /// 初始化Config文件
        /// </summary>
        private void InitConfig()
        {
            // 设置Config根目录
            ConfigLoader.rootDirectory = Application.streamingAssetsPath + "/" + TestGameMain.instance.m_ConfigPath;

            // 自动读取Config,获取config中的测试数据
            TestLogData logData0 = TestLogXmlConfig.GetData(0);
            TestLogData logData1 = TestLogXmlConfig.GetData(1);

            // 打印Config中的测试数据
            Debug.Log(logData0);
            Debug.Log(logData1);

            // 这里可以自定义预读取的Config。
            ConfigLoader.LoadConfig(
                typeof(TestLogTxtConfig),
                typeof(TestLogXmlDocConfig),
                typeof(TestLogJsonConfig)
                );
        }
示例#3
0
        /// <summary>
        /// 获取数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public static TestLogData GetData(int id)
        {
            TestLogXmlConfig config = Get <TestLogXmlConfig>();

            if (config == null || config.m_DataDict == null)
            {
                throw new FormatException("Config is not formated. Check the console panel.");
            }

            TestLogData data;

            if (!config.m_DataDict.TryGetValue(id, out data))
            {
                Debug.LogErrorFormat(
                    "Data in config '{0}' is not found. ID: {1}.",
                    typeof(TestLogXmlConfig).Name,
                    id.ToString()
                    );
                return(null);
            }
            return(data);
        }
示例#4
0
        /// <summary>
        /// 反序列化完成时执行。
        /// </summary>
        /// <param name="buffer"></param>
        protected override XmlConfigFile FormatBuffer(XmlConfigFile buffer)
        {
            //// 如果你要直接使用m_Datas。请直接返回Buffer
            //return buffer;

            // 将反序列化数据从buffer填充到本config的Dict
            TestLogXmlConfig logBuffer = buffer as TestLogXmlConfig;

            m_DataDict = new Dictionary <int, TestLogData>();
            for (int i = 0; i < logBuffer.m_Datas.Length; i++)
            {
                TestLogData data = logBuffer.m_Datas[i];
                if (!m_DataDict.ContainsKey(data.id))
                {
                    m_DataDict.Add(data.id, data);
                }
            }

            // 这里将buffer的数据填充到dict,buffer将丢弃。
            // 需要注意,buffer的m_Datas属性有数据,而Dict没有数据。
            // 本config,m_Datas没有数据,而Dict有数据。
            // 你也可以把buffer填充,然后直接返回buffer,将本config丢弃。
            return(this);
        }