123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEditor;
- using UnityEditor.XR.Management;
- using UnityEditor.XR.Management.Metadata;
- using UnityEngine;
- using UnityEngine.SceneManagement;
- using UnityEngine.XR.Management;
- public class LoadXR
- {
- private static string Path = "Build";
-
-
-
- [MenuItem("Build/Build APK")]
- public static void BuildAPK()
- {
- switch (GHZSDKSettings.loadSDKType)
- {
- case "Rhinox":
- LoadXR.LoadOnlyRhinox();
- break;
- case "Phone":
- LoadXR.LoadOnlyARCore();
- break;
- }
- List<string> slist = new List<string>();
- for (int i = 0; i < SceneManager.sceneCount; i++)
- {
- Scene sc = SceneManager.GetSceneAt(i);
- if (sc.IsValid())
- {
- slist.Add(sc.path);
- }
- }
- string AndroidPath = "/Android/";
- BuildPipeline.BuildPlayer(slist.ToArray(), Path + AndroidPath + GHZSDKSettings.loadSDKType + ".apk", BuildTarget.Android, BuildOptions.None);
- }
- public static void LoadOnlyARCore()
- {
- XRGeneralSettings androidXRSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Android);
- if (androidXRSettings == null)
- {
- var assignedSettings = ScriptableObject.CreateInstance<XRManagerSettings>() as XRManagerSettings;
- androidXRSettings.AssignedSettings = assignedSettings;
- EditorUtility.SetDirty(androidXRSettings);
- }
-
- IReadOnlyList<XRLoader> list = androidXRSettings.Manager.activeLoaders;
- int hasCount = list.Count;
-
- for (int i = 0; i < hasCount; i++)
- {
- string nameTemp = list[0].GetType().FullName;
- Debug.Log("disable xr plug:" + nameTemp);
- XRPackageMetadataStore.RemoveLoader(androidXRSettings.Manager, nameTemp, BuildTargetGroup.Android);
- }
-
- string loaderTypeName = "UnityEngine.XR.ARCore.ARCoreLoader";
- XRPackageMetadataStore.AssignLoader(androidXRSettings.Manager, loaderTypeName, BuildTargetGroup.Android);
- }
- public static void LoadOnlyRhinox()
- {
- XRGeneralSettings androidXRSettings = XRGeneralSettingsPerBuildTarget.XRGeneralSettingsForBuildTarget(BuildTargetGroup.Android);
- if (androidXRSettings == null)
- {
- var assignedSettings = ScriptableObject.CreateInstance<XRManagerSettings>() as XRManagerSettings;
- androidXRSettings.AssignedSettings = assignedSettings;
- EditorUtility.SetDirty(androidXRSettings);
- }
-
- IReadOnlyList<XRLoader> list = androidXRSettings.Manager.activeLoaders;
- int hasCount = list.Count;
-
- for (int i = 0; i < hasCount; i++)
- {
- string nameTemp = list[0].GetType().FullName;
- Debug.Log("disable xr plug:" + nameTemp);
- XRPackageMetadataStore.RemoveLoader(androidXRSettings.Manager, nameTemp, BuildTargetGroup.Android);
- }
-
- string loaderTypeName = "Ximmerse.XR.XimmerseXRLoader";
- XRPackageMetadataStore.AssignLoader(androidXRSettings.Manager, loaderTypeName, BuildTargetGroup.Android);
- }
- }
|