Ejemplo n.º 1
0
        internal static void GetAllKnownLoaderInfos(List <LoaderInfo> newInfos)
        {
            var loaderTypes = TypeLoaderExtensions.GetAllTypesWithInterface <XRLoader>();

            foreach (Type loaderType in loaderTypes)
            {
                // HACK: No need for people to see these loaders
                if (String.Compare("DummyLoader", loaderType.Name, StringComparison.OrdinalIgnoreCase) == 0 ||
                    String.Compare("SampleLoader", loaderType.Name, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    continue;
                }

                var assets = AssetDatabase.FindAssets(String.Format("t:{0}", loaderType));
                if (!assets.Any())
                {
                    LoaderInfo info = new LoaderInfo();
                    info.loaderType = loaderType;
                    newInfos.Add(info);
                }
                else
                {
                    foreach (var asset in assets)
                    {
                        string path = AssetDatabase.GUIDToAssetPath(asset);

                        LoaderInfo info = new LoaderInfo();
                        info.loaderType = loaderType;
                        info.instance   = AssetDatabase.LoadAssetAtPath(path, loaderType) as XRLoader;
                        info.assetName  = Path.GetFileNameWithoutExtension(path);
                        newInfos.Add(info);
                    }
                }
            }
        }
Ejemplo n.º 2
0
 static void BeginPackageInitialization()
 {
     foreach (var t in TypeLoaderExtensions.GetAllTypesWithInterface <XRPackageInitializationBase>())
     {
         XRPackageInitializationBase packageInit = Activator.CreateInstance(t) as XRPackageInitializationBase;
         InitPackage(packageInit);
     }
 }
Ejemplo n.º 3
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;
            }
        }
Ejemplo n.º 4
0
        internal static void GetAllKnownLoaderInfos(List <XRLoaderInfo> newInfos)
        {
            var loaderTypes = TypeLoaderExtensions.GetAllTypesWithInterface <XRLoader>();

            foreach (Type loaderType in loaderTypes)
            {
                if (loaderType.IsAbstract)
                {
                    continue;
                }

                if (s_LoaderBlackList.Contains(loaderType.Name))
                {
                    continue;
                }

                var assets = AssetDatabase.FindAssets(String.Format("t:{0}", loaderType));
                if (!assets.Any())
                {
                    XRLoaderInfo info = new XRLoaderInfo();
                    info.loaderType = loaderType;
                    newInfos.Add(info);
                }
                else
                {
                    foreach (var asset in assets)
                    {
                        string path = AssetDatabase.GUIDToAssetPath(asset);

                        XRLoaderInfo info = new XRLoaderInfo();
                        info.loaderType = loaderType;
                        info.instance   = AssetDatabase.LoadAssetAtPath(path, loaderType) as XRLoader;
                        info.assetName  = Path.GetFileNameWithoutExtension(path);
                        newInfos.Add(info);
                    }
                }
            }
        }