From d1c86ecf64147ce7cb72fff1f4afb6500d3d5846 Mon Sep 17 00:00:00 2001 From: "yangel.yan" Date: Wed, 23 Jul 2025 17:41:44 +0800 Subject: [PATCH] update settings --- Editor/PXR_SDKSettingEditor.cs | 47 +++++++++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/Editor/PXR_SDKSettingEditor.cs b/Editor/PXR_SDKSettingEditor.cs index 7c035f3..8a6f98e 100644 --- a/Editor/PXR_SDKSettingEditor.cs +++ b/Editor/PXR_SDKSettingEditor.cs @@ -66,20 +66,48 @@ public enum Response Action applyPICOXRPluginAction = () => { - var generalSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Android); - if (generalSettings) + SettingsService.OpenProjectSettings("Project/XR Plug-in Management"); + + var buildTargetSettings = AssetDatabase.FindAssets("t:XRGeneralSettingsPerBuildTarget") + .Select(guid => AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(guid))) + .FirstOrDefault(); + + if (buildTargetSettings == null) + { + buildTargetSettings = ScriptableObject.CreateInstance(); + AssetDatabase.CreateAsset(buildTargetSettings, "Assets/XRGeneralSettingsPerBuildTarget.asset"); + Debug.Log($"PXR_Loader XRGeneralSettingsPerBuildTarget"); + } + + var generalSettings = buildTargetSettings.SettingsForBuildTarget(BuildTargetGroup.Android); + if (generalSettings == null) + { + generalSettings = ScriptableObject.CreateInstance(); + AssetDatabase.AddObjectToAsset(generalSettings, buildTargetSettings); + buildTargetSettings.SetSettingsForBuildTarget(BuildTargetGroup.Android, generalSettings); + + var managerSettings = ScriptableObject.CreateInstance(); + AssetDatabase.AddObjectToAsset(managerSettings, buildTargetSettings); + generalSettings.Manager = managerSettings; + + EditorUtility.SetDirty(buildTargetSettings); + AssetDatabase.SaveAssets(); + } + + if (generalSettings.Manager) { - IReadOnlyList list = generalSettings.Manager.activeLoaders; - while (list.Count > 0) + while (generalSettings.Manager.activeLoaders.Count > 0) { - string nameTemp = list[0].GetType().FullName; - XRPackageMetadataStore.RemoveLoader(generalSettings.Manager, nameTemp, BuildTargetGroup.Android); + var loaderName = generalSettings.Manager.activeLoaders[0].GetType().FullName; + XRPackageMetadataStore.RemoveLoader(generalSettings.Manager, loaderName, BuildTargetGroup.Android); } - XRPackageMetadataStore.AssignLoader(generalSettings.Manager, "PXR_Loader", BuildTargetGroup.Android); + + bool success = XRPackageMetadataStore.AssignLoader(generalSettings.Manager, "PXR_Loader", BuildTargetGroup.Android); } PXR_AppLog.PXR_OnEvent(PXR_AppLog.strPortal, PXR_AppLog.strPortal_Configs_RequiredPICOXRPluginApplied); }; + Action applyBuildTargetAction = () => { EditorUserBuildSettings.SwitchActiveBuildTarget(BuildTargetGroup.Android, recommendedBuildTarget); @@ -137,6 +165,11 @@ private void Awake() buttonClickedStates[Response.Configs] = true; } + private void OnEnable() + { + _styles ??= new PXR_EditorStyles(); + } + private void OnDestroy() { instance = null;