Exemplo n.º 1
0
        static bool InitializeSettingsInstance(XRPackageInitializationBase packageInit)
        {
            bool ret = EditorUtilities.AssetDatabaseHasInstanceOfType(packageInit.SettingsTypeName);

            if (Application.isBatchMode)
            {
                return(true);
            }

            if (!ret)
            {
                ret = EditorUtility.DisplayDialog(
                    String.Format("{0} Package Initialization", packageInit.PackageName),
                    String.Format("Before using the {0} package you should create an instance of {0} Settings to provide for custom configuration. Would you like to do that now?", packageInit.PackageName),
                    "Create Settings",
                    "Cancel");
                if (ret)
                {
                    var obj = CreateScriptableObjectInstance(packageInit.PackageName,
                                                             packageInit.SettingsFullTypeName,
                                                             "Settings",
                                                             EditorUtilities.GetAssetPathForComponents(EditorUtilities.s_DefaultSettingsPath));
                    ret = packageInit.PopulateSettingsOnInitialization(obj);
                }
            }

            return(ret);
        }
Exemplo n.º 2
0
        static bool InitializeLoaderInstance(XRPackageInitializationBase packageInit)
        {
            bool ret = EditorUtilities.AssetDatabaseHasInstanceOfType(packageInit.LoaderTypeName);

            if (Application.isBatchMode)
            {
                return(true);
            }

            if (!ret)
            {
                ret = EditorUtility.DisplayDialog(
                    String.Format("{0} Package Initialization", packageInit.PackageName),
                    String.Format("Before using the {0} package you need to create an instance of the {0} Loader. Would you like to do that now?", packageInit.PackageName),
                    "Create Loader",
                    "Cancel");
                if (ret)
                {
                    var obj = CreateScriptableObjectInstance(packageInit.PackageName,
                                                             packageInit.LoaderFullTypeName,
                                                             "Loader",
                                                             EditorUtilities.GetAssetPathForComponents(EditorUtilities.s_DefaultLoaderPath));
                    ret = (obj != null);
                }
            }

            return(ret);
        }
Exemplo n.º 3
0
        static void InitPackage(XRPackageInitializationBase packageInit)
        {
            PackageInitializationSettings.Instance.LoadSettings();

            if (PackageInitializationSettings.Instance.HasSettings(packageInit.PackageInitKey))
            {
                return;
            }

            EditorApplication.update -= BeginPackageInitialization;

            if (!InitializeLoaderInstance(packageInit))
            {
                Debug.LogWarning(
                    String.Format("{0} Loader Initialization not completed. You will need to create an instance of the loader using an instance of XRManager before you can use the intended XR Package.", packageInit.PackageName));
            }

            if (!InitializeSettingsInstance(packageInit))
            {
                Debug.LogWarning(
                    String.Format("{0} Settings Initialization not completed. You will need to create an instance of settings to customize options specific to this pacakge.", packageInit.PackageName));
            }

            PackageInitializationSettings.Instance.AddSettings(packageInit.PackageInitKey);
            PackageInitializationSettings.Instance.SaveSettings();
        }
Exemplo n.º 4
0
 static void BeginPackageInitialization()
 {
     foreach (var t in TypeLoaderExtensions.GetAllTypesWithInterface <XRPackageInitializationBase>())
     {
         XRPackageInitializationBase packageInit = Activator.CreateInstance(t) as XRPackageInitializationBase;
         InitPackage(packageInit);
     }
 }
Exemplo n.º 5
0
        static bool InitializeSettingsInstance(XRPackageInitializationBase packageInit)
        {
            bool ret = EditorUtilities.AssetDatabaseHasInstanceOfType(packageInit.SettingsTypeName);

            if (!ret)
            {
                var obj = EditorUtilities.CreateScriptableObjectInstance(packageInit.SettingsFullTypeName,
                                                                         EditorUtilities.GetAssetPathForComponents(EditorUtilities.s_DefaultSettingsPath));
                ret = packageInit.PopulateSettingsOnInitialization(obj);
            }

            return(ret);
        }
Exemplo n.º 6
0
        static bool InitializeLoaderInstance(XRPackageInitializationBase packageInit)
        {
            bool ret = EditorUtilities.AssetDatabaseHasInstanceOfType(packageInit.LoaderTypeName);

            if (!ret)
            {
                var obj = EditorUtilities.CreateScriptableObjectInstance(packageInit.LoaderFullTypeName,
                                                                         EditorUtilities.GetAssetPathForComponents(EditorUtilities.s_DefaultLoaderPath));
                ret = (obj != null);
            }

            return(ret);
        }
Exemplo n.º 7
0
        static void InitPackage(XRPackageInitializationBase packageInit)
        {
            if (!InitializeLoaderInstance(packageInit))
            {
                Debug.LogWarning(
                    String.Format("{0} Loader Initialization not completed. You will need to create an instance of the loader manually before you can use the intended XR Plug-in Package.", packageInit.PackageName));
            }

            if (!InitializeSettingsInstance(packageInit))
            {
                Debug.LogWarning(
                    String.Format("{0} Settings Initialization not completed. You will need to create an instance of settings to customize options specific to this package.", packageInit.PackageName));
            }
        }
Exemplo n.º 8
0
        internal static void BeginPackageInitialization()
        {
            EditorApplication.update -= BeginPackageInitialization;

            foreach (var t in TypeLoaderExtensions.GetAllTypesWithInterface <IXRPackage>())
            {
                if (t.IsInterface || t.FullName.Contains("Unity.XR.Management.TestPackage") || t.FullName.Contains("UnityEditor.XR.Management.Metadata.KnownPackages"))
                {
                    continue;
                }

                IXRPackage package = Activator.CreateInstance(t) as IXRPackage;
                if (package == null)
                {
                    Debug.LogError($"Unable to find an implementation for expected package type {t.FullName}.");
                    continue;
                }
                InitPackage(package);
            }

            foreach (var t in TypeLoaderExtensions.GetAllTypesWithInterface <XRPackageInitializationBase>())
            {
                if (t.IsInterface)
                {
                    continue;
                }

                XRPackageInitializationBase packageInit = Activator.CreateInstance(t) as XRPackageInitializationBase;
                if (packageInit == null)
                {
                    Debug.LogError($"Unable to find an implementation for expected package type {t.FullName}.");
                    continue;
                }
                InitPackage(packageInit);
            }

            if (XRSettingsManager.Instance != null)
            {
                XRSettingsManager.Instance.ResetUi = true;
            }
        }