using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; using UnityEditor; using UnityEngine; using UnityEngine.Serialization; namespace AnyThink.Scripts.Assets { [Serializable] public class SerializableDictionary : Dictionary { } public class ATConfigAsset2 : ScriptableObject { public const string SettingsExportPath = "Assets/AnyThinkPlugin/Resources/Assets/ATConfigData.asset"; private static ATConfigAsset2 instance; public static ATConfigAsset2 Instance { get { if (instance == null) { string settingsFilePath = SettingsExportPath; var settingsDir = Path.GetDirectoryName(settingsFilePath); if (!Directory.Exists(settingsDir)) { Directory.CreateDirectory(settingsDir); } // instance = AssetDatabase.LoadAssetAtPath(settingsFilePath); instance = Resources.Load(settingsFilePath); if (instance != null) return instance; instance = CreateInstance(); AssetDatabase.CreateAsset(instance, settingsFilePath); } return instance; } } [SerializeField] SerializableDictionary installedNetworkVersion = new SerializableDictionary(); // [SerializeField] string installedNetworkVersionJson = string.Empty; [SerializeField] int localCountry = 1; public int LocalCountry { get { return Instance.localCountry; } set { Instance.localCountry = value; } } public void saveInstalledNetworkVersion(string key, string version) { Instance.installedNetworkVersion[key] = version; } public void removeInstalledNetworkVersion(string key) { if (Instance.installedNetworkVersion.ContainsKey(key)) { Instance.installedNetworkVersion.Remove(key); } } public string getInstalledNetworkVersion(string key) { if (Instance.installedNetworkVersion.ContainsKey(key)) { return Instance.installedNetworkVersion[key]; } return ""; } public void SaveAsync() { EditorUtility.SetDirty(instance); } } }