EditorBuildHelper.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using UnityEditor;
  2. using UnityEngine;
  3. using System.Collections.Generic;
  4. namespace LLM.Editor.Data
  5. {
  6. [InitializeOnLoad]
  7. public class EditorBuildHelper
  8. {
  9. static EditorBuildHelper() => Init();
  10. private static void Init()
  11. {
  12. var isSessionSet = SessionState.GetBool("GameSetupWindowV2_BuildBundles", false);
  13. if (!isSessionSet) return;
  14. if (EditorApplication.isCompiling) return;
  15. var isCurrentBundleBuildInProgress = SessionState.GetBool("GameSetupWindowV2_IsCurrentBundleBuildInProgress", false);
  16. if (isCurrentBundleBuildInProgress) return;
  17. var jsonData = SessionState.GetString("GameSetupWindowV2_SelectedPlatforms", null);
  18. if (string.IsNullOrEmpty(jsonData)) return;
  19. var platforms = JsonUtility.FromJson<List<string>>(jsonData);
  20. if (platforms == null || platforms.Count == 0)
  21. {
  22. ClearSession();
  23. return;
  24. }
  25. var platform = platforms[0];
  26. SessionState.SetString("GameSetupWindowV2_CurrentPlatform", platform);
  27. platforms.RemoveAt(0);
  28. SessionState.SetString("GameSetupWindowV2_BuildBundlesJson", JsonUtility.ToJson(platforms));
  29. }
  30. private static void ClearSession()
  31. {
  32. SessionState.EraseBool("GameSetupWindowV2_BuildBundles");
  33. SessionState.EraseString("GameSetupWindowV2_SelectedPlatforms");
  34. SessionState.EraseBool("GameSetupWindowV2_CurrentPlatform");
  35. }
  36. }
  37. }