From 8d0728872f512409895b6b6fea17b74d0633da81 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 26 五月 2026 15:38:40 +0800
Subject: [PATCH] 启动游戏时同步version config

---
 Assets/Editor/Tool/ExportVersionConfigEx.cs |   65 ++++++++++++++++++++++++++------
 1 files changed, 52 insertions(+), 13 deletions(-)

diff --git a/Assets/Editor/Tool/ExportVersionConfigEx.cs b/Assets/Editor/Tool/ExportVersionConfigEx.cs
index 4245a32..5615e9b 100644
--- a/Assets/Editor/Tool/ExportVersionConfigEx.cs
+++ b/Assets/Editor/Tool/ExportVersionConfigEx.cs
@@ -1,31 +1,70 @@
-锘縰sing System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
+锘縰sing UnityEngine;
 using UnityEditor;
 using System.IO;
-using UnityEngine.UI;
-using System.Reflection;
 
 
+[InitializeOnLoad]
 public class ExportVersionConfigEx : EditorWindow {
+    private const string VersionConfigAssetPath = "Assets/Resources/VersionConfig.asset";
+    private const string VersionConfigExAssetPath = "Assets/Resources/VersionConfigEx.txt";
 
+    static ExportVersionConfigEx()
+    {
+        EditorApplication.playModeStateChanged -= OnPlayModeStateChanged;
+        EditorApplication.playModeStateChanged += OnPlayModeStateChanged;
+    }
 
     [MenuItem("绋嬪簭/鍚屾VersionConfigEx.txt", false)]
-    private static async void Export()
+    public static void Export()
     {
-        //鐢熸垚VersionConfigEx.txt 鎻愪緵缁橝OT鍚姩鏃朵娇鐢�
-        await VersionConfig.GetAsync();
-        var json = JsonUtility.ToJson(VersionConfig.config);
-        string versionConfigExFile = Application.dataPath + "/Resources/VersionConfigEx.txt";
-        if (File.Exists(versionConfigExFile))
+        SyncVersionConfigEx();
+    }
+
+    public static bool SyncVersionConfigEx()
+    {
+        var versionConfig = AssetDatabase.LoadAssetAtPath<VersionConfig>(VersionConfigAssetPath);
+        if (versionConfig == null)
         {
-            File.Delete(versionConfigExFile);
+            Debug.LogError($"鍚屾VersionConfigEx.txt澶辫触锛屾壘涓嶅埌閰嶇疆: {VersionConfigAssetPath}");
+            return false;
         }
+
+        VersionConfig.config = versionConfig;
+        if (LocalSave.GetBool("RestoreTest"))
+        {
+            versionConfig.m_AppId = "test";
+            LocalSave.SetBool("RestoreTest", false);
+            EditorUtility.SetDirty(versionConfig);
+            Debug.Log("appid 鎭㈠test");
+        }
+
+        string versionConfigExFile = Path.Combine(Application.dataPath, "Resources", "VersionConfigEx.txt");
+        string versionConfigExDirectory = Path.GetDirectoryName(versionConfigExFile);
+        if (!Directory.Exists(versionConfigExDirectory))
+        {
+            Directory.CreateDirectory(versionConfigExDirectory);
+        }
+
+        var json = JsonUtility.ToJson(versionConfig);
         File.WriteAllText(versionConfigExFile, json);
         AssetDatabase.SaveAssets();
-        AssetDatabase.Refresh();
+        AssetDatabase.ImportAsset(VersionConfigExAssetPath, ImportAssetOptions.ForceUpdate);
+        VersionConfigEx.config = null;
         Debug.Log("鍚屾VersionConfigEx.txt鎴愬姛");
+        return true;
+    }
 
+    private static void OnPlayModeStateChanged(PlayModeStateChange state)
+    {
+        if (state != PlayModeStateChange.ExitingEditMode)
+        {
+            return;
+        }
+
+        if (!SyncVersionConfigEx())
+        {
+            EditorApplication.isPlaying = false;
+        }
     }
 
   

--
Gitblit v1.8.0