using System.Collections; using System.Collections.Generic; using System.IO; using System.Xml; using UnityEngine; namespace Touka { public class TKGLoadPlistConfig { static string resourcePath = Application.dataPath; static string extraStr = ".plist"; public static PlayerPrefPair[] GetToukaConfig( string _configFile , string region) { return GetAllFromPlist(resourcePath + "/Configs/"+region+"/" + _configFile + extraStr); } public static PlayerPrefPair[] GetAllFromPlist(string _configPath) { if (File.Exists(_configPath)) { object plist = TKGPlist.readPlist(_configPath); Dictionary parsed = plist as Dictionary; PlayerPrefPair[] tempPlayerPrefs = new PlayerPrefPair[parsed.Count]; int i = 0; foreach (KeyValuePair pair in parsed) { if (pair.Value.GetType() == typeof(double)) { // Some float values may come back as double, so convert them back to floats tempPlayerPrefs[i] = new PlayerPrefPair() { Key = pair.Key, Value = (float)(double)pair.Value }; } else { tempPlayerPrefs[i] = new PlayerPrefPair() { Key = pair.Key, Value = pair.Value }; } i++; } return tempPlayerPrefs; } else { Debug.LogError(_configPath + " Not Exist!"); return new PlayerPrefPair[0]; } } public static PlayerPrefPair[] GetAllFromXML(string _configPath) { if (File.Exists(resourcePath + _configPath + ".xml")) { TextAsset configText = (TextAsset)Resources.Load(_configPath); object plist = TKGPlist.readPlistSource(configText.text); Dictionary parsed = plist as Dictionary; PlayerPrefPair[] tempPlayerPrefs = new PlayerPrefPair[parsed.Count]; int i = 0; foreach (KeyValuePair pair in parsed) { if (pair.Value.GetType() == typeof(double)) { // Some float values may come back as double, so convert them back to floats tempPlayerPrefs[i] = new PlayerPrefPair() { Key = pair.Key, Value = (float)(double)pair.Value }; } else { tempPlayerPrefs[i] = new PlayerPrefPair() { Key = pair.Key, Value = pair.Value }; } i++; } return tempPlayerPrefs; } else { Debug.LogError(_configPath + " Not Exist!"); return new PlayerPrefPair[0]; } } } } public struct PlayerPrefPair { public string Key { get; set; } public object Value { get; set; } }