Files
Commercialization.topon/AnyThinkPlugin/Script/IntegrationManager/Editor/ATConfigAsset2.cs
2024-03-07 15:23:32 +08:00

83 lines
2.6 KiB
C#

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<TKey, TValue> : Dictionary<TKey, TValue>
{
}
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<ATConfigAsset>(settingsFilePath);
instance = Resources.Load<ATConfigAsset2>(settingsFilePath);
if (instance != null) return instance;
instance = CreateInstance<ATConfigAsset2>();
AssetDatabase.CreateAsset(instance, settingsFilePath);
}
return instance;
}
}
[SerializeField] SerializableDictionary<string, string> installedNetworkVersion = new SerializableDictionary<string, string>();
// [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);
}
}
}