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); } } } }
static void BeginPackageInitialization() { foreach (var t in TypeLoaderExtensions.GetAllTypesWithInterface <XRPackageInitializationBase>()) { XRPackageInitializationBase packageInit = Activator.CreateInstance(t) as XRPackageInitializationBase; InitPackage(packageInit); } }
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; } }
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); } } } }