From f830789f4cdf815b162f12870a28bfe0c369baa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E9=93=AE?= <834207172@qq.com> Date: Wed, 10 Sep 2025 10:53:08 +0800 Subject: [PATCH] 1 --- .../ChangePlayerMode/ChangeHotUpdateMode.cs | 4 +- .../ChangePlayerMode/ChangePlayerMode.cs | 8 +- .../ChangePlayerMode/ChangePointClondMode.cs | 78 +++++++++++++++++++ .../ChangePointClondMode.cs.meta | 3 + Assets/00.StaryEvo/package.json | 2 +- .../Runtime/HybridLoad/Fsm/LoadResState.cs | 11 ++- Assets/00.StaryEvoTools/package.json | 2 +- 7 files changed, 98 insertions(+), 10 deletions(-) create mode 100644 Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePointClondMode.cs create mode 100644 Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePointClondMode.cs.meta diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangeHotUpdateMode.cs b/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangeHotUpdateMode.cs index 11c6576..3ce95ba 100644 --- a/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangeHotUpdateMode.cs +++ b/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangeHotUpdateMode.cs @@ -15,8 +15,8 @@ namespace Stary.Evo.Editor private static HotUpdateMode _hotUpdate; - private const string EditorNotUpdateMode = "Evo/ChangeHotUpdateSchema/NOTUPDARE(非热更模式)"; - private const string EditorHotUpdateMode = "Evo/ChangeHotUpdateSchema/HOTUPDATE(热更模式)"; + private const string EditorNotUpdateMode = "Evo/Schema/ChangeHotUpdate/NOTUPDARE(非热更模式)"; + private const string EditorHotUpdateMode = "Evo/Schema/ChangeHotUpdate/HOTUPDATE(热更模式)"; [MenuItem(EditorNotUpdateMode)] private static void SetNotUpdateMode() => SetHotUpdateMode(HotUpdateMode.NotUpdate); diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePlayerMode.cs b/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePlayerMode.cs index 4162573..8d18511 100644 --- a/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePlayerMode.cs +++ b/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePlayerMode.cs @@ -15,10 +15,10 @@ namespace Stary.Evo.Editor private static PLayerMode _pLayerMode; - private const string EditorSimulateMode = "Evo/ChangePlayerSchema/EditorSimulateMode(编辑器调试模式)"; - private const string OfflinePlayMode = "Evo/ChangePlayerSchema/OfflinePlayMode(本地运行模式)"; - private const string HostPlayMode = "Evo/ChangePlayerSchema/HostPlayMode(服务器运行模式)"; - private const string WebPlayMode = "Evo/ChangePlayerSchema/WebPlayMode(Web运行模式)"; + private const string EditorSimulateMode = "Evo/Schema/ChangePlayer/EditorSimulateMode(编辑器调试模式)"; + private const string OfflinePlayMode = "Evo/Schema/ChangePlayer/OfflinePlayMode(本地运行模式)"; + private const string HostPlayMode = "Evo/Schema/ChangePlayer/HostPlayMode(服务器运行模式)"; + private const string WebPlayMode = "Evo/Schema/ChangePlayer/WebPlayMode(Web运行模式)"; [MenuItem(EditorSimulateMode)] private static void SetEditorMode() => SetPlayerMode(PLayerMode.EDITOR_SIMULATEMODE); diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePointClondMode.cs b/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePointClondMode.cs new file mode 100644 index 0000000..f7de529 --- /dev/null +++ b/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePointClondMode.cs @@ -0,0 +1,78 @@ +using System; +using System.Linq; +using UnityEditor; +using UnityEngine; + +namespace Stary.Evo.Editor +{ + public class ChangePointClondMode + { + public static PointClondMode PointClondMode + { + get => _pointClondMode; + set => SetPoindClondMode(value); + } + + private static PointClondMode _pointClondMode; + + private const string EditorNotMode = "Evo/Schema/ChangePointClond/NotPointClond"; + private const string EditorImmersalMode = "Evo/Schema/ChangePointClond/Immersal"; + + [MenuItem(EditorNotMode)] + private static void SetNotMode() => SetPoindClondMode(PointClondMode.NotPointClond); + + [MenuItem(EditorImmersalMode)] + private static void SetImmersalMode() => SetPoindClondMode(PointClondMode.Immersal); + + // [MenuItem(WebPlayMode)] + // private static void SetWebMode() => SetPlayerMode(HotUpdateMode.WEB_PLAYMODE); + + [MenuItem(EditorNotMode, true)] + private static bool ValidateModeMenu() + { + string platform = EditorPrefs.GetString("ChangeHotUpdateSchema"); + Menu.SetChecked(EditorNotMode, platform == HotUpdateMode.NotUpdate.ToString()); + Menu.SetChecked(EditorImmersalMode, platform == HotUpdateMode.HotUpdate.ToString()); + //Menu.SetChecked(WebPlayMode, platform == HotUpdateMode.WEB_PLAYMODE.ToString()); + Debug.LogError("ChangeHotUpdateSchema"); + return true; + } + + public static void SetPoindClondMode(PointClondMode mode) + { + // 清除所有旧模式定义 + var currentTarget = EditorUserBuildSettings.selectedBuildTargetGroup; + if (currentTarget == BuildTargetGroup.Unknown) return; + + var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(currentTarget) + .Split(';') + .Where(d => !Enum.GetNames(typeof(HotUpdateMode)).Contains(d)) + .ToList(); + + // 添加新模式 + defines.Add(mode.ToString()); + PlayerSettings.SetScriptingDefineSymbolsForGroup(currentTarget, string.Join(";", defines)); + Debug.Log($"当前编译符号: {string.Join(";", defines)}"); // 添加调试日志 + _pointClondMode = mode; + EditorPrefs.SetString("ChangeHotUpdateSchema", _pointClondMode.ToString()); + + ValidateModeMenu(); + AssetDatabase.Refresh(); + // 添加解决方案文件重新生成逻辑 + EditorApplication.delayCall += () => + { + EditorApplication.ExecuteMenuItem("Assets/Open C# Project"); + UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation(); + Debug.Log("已强制重新生成解决方案文件"); + }; + } + } + + public enum PointClondMode + { + //非点云模式, + NotPointClond, + //Immersal模式 + Immersal, + } +} \ No newline at end of file diff --git a/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePointClondMode.cs.meta b/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePointClondMode.cs.meta new file mode 100644 index 0000000..d5208d9 --- /dev/null +++ b/Assets/00.StaryEvo/Editor/BuildAsset/ChangePlayerMode/ChangePointClondMode.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 076111eb4cfd413287c1d7f299fe5a1f +timeCreated: 1757471872 \ No newline at end of file diff --git a/Assets/00.StaryEvo/package.json b/Assets/00.StaryEvo/package.json index 4819815..da48a9a 100644 --- a/Assets/00.StaryEvo/package.json +++ b/Assets/00.StaryEvo/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.main", - "version": "2.0.0", + "version": "2.0.1", "displayName": "00.StaryEvo", "description": "This is an Framework package(后台服务器版本,端口9527)", "unity": "2021.3", diff --git a/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/LoadResState.cs b/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/LoadResState.cs index 4c22b82..9a0aac1 100644 --- a/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/LoadResState.cs +++ b/Assets/00.StaryEvoTools/Runtime/HybridLoad/Fsm/LoadResState.cs @@ -1,6 +1,9 @@ using System; using Cysharp.Threading.Tasks; + +#if Immersal using Immersal.AR; +#endif using Stary.Evo; using Stary.Evo.InformationSave; using UnityEngine; @@ -44,17 +47,21 @@ namespace Stary.Evo await loadOperation; if (loadOperation.Status == EOperationStatus.Succeed) { + + #if Immersal ARSpace arSpace = GameObject.FindObjectOfType(); if (arSpace != null) { Debug.Log("UnityEvo:找到ARSpace,开始加载点云运行环境..."); mainPrefab = loadOperation.InstantiateSync(arSpace.transform); - } - else + } else { Debug.Log("UnityEvo:未找到ARSpace,开始加载普通运行环境,通过语音唤醒..."); mainPrefab = loadOperation.InstantiateSync(); } + #elif NotPointClond + mainPrefab = loadOperation.InstantiateSync(); + #endif if(domainConfig.domain =="Main") AppConfig.SetDefaultMainInstance(mainPrefab); } diff --git a/Assets/00.StaryEvoTools/package.json b/Assets/00.StaryEvoTools/package.json index 5ee58ca..be63b0c 100644 --- a/Assets/00.StaryEvoTools/package.json +++ b/Assets/00.StaryEvoTools/package.json @@ -1,6 +1,6 @@ { "name": "com.staryevo.tools", - "version": "1.0.1", + "version": "1.0.2", "displayName": "00.StaryEvo.Tools", "description": "This is an Framework package(后台服务器版本,端口9527)", "unity": "2021.3",