private static bool InitializePackageManager(Assembly assembly, PackageInfo package) { ModuleManager.s_PackageManager = AssemblyHelper.FindImplementors <IPackageManagerModule>(assembly).FirstOrDefault <IPackageManagerModule>(); if (ModuleManager.s_PackageManager == null) { return(false); } string location = assembly.Location; if (PackageInfo.op_Inequality(package, (PackageInfo)null)) { InternalEditorUtility.SetupCustomDll(Path.GetFileName(location), location); } else { package = new PackageInfo() { basePath = (__Null)Path.GetDirectoryName(location) } }; ((IEditorModule)ModuleManager.s_PackageManager).set_moduleInfo(package); ModuleManager.s_PackageManager.set_editorInstallPath(EditorApplication.applicationContentsPath); ModuleManager.s_PackageManager.set_unityVersion(PackageVersion.op_Implicit(new PackageVersion(Application.unityVersion))); ((IEditorModule)ModuleManager.s_PackageManager).Initialize(); using (IEnumerator <PackageInfo> enumerator1 = ModuleManager.s_PackageManager.get_playbackEngines().GetEnumerator()) { while (((IEnumerator)enumerator1).MoveNext()) { PackageInfo current1 = enumerator1.Current; BuildTarget target = BuildTarget.StandaloneWindows; if (ModuleManager.TryParseBuildTarget((string)current1.name, out target)) { Console.WriteLine("Setting {0} v{1} for Unity v{2} to {3}", new object[4] { (object)target, (object)current1.version, (object)current1.unityVersion, (object)current1.basePath }); using (IEnumerator <KeyValuePair <string, PackageFileData> > enumerator2 = ((IEnumerable <KeyValuePair <string, PackageFileData> >)current1.get_files()).Where <KeyValuePair <string, PackageFileData> >((Func <KeyValuePair <string, PackageFileData>, bool>)(f => f.Value.type == 3)).GetEnumerator()) { while (((IEnumerator)enumerator2).MoveNext()) { KeyValuePair <string, PackageFileData> current2 = enumerator2.Current; if (!File.Exists(Path.Combine((string)current1.basePath, current2.Key).NormalizePath())) { UnityEngine.Debug.LogWarningFormat("Missing assembly \t{0} for {1}. Player support may be incomplete.", new object[2] { (object)current1.basePath, (object)current1.name }); } else { InternalEditorUtility.SetupCustomDll(Path.GetFileName(location), location); } } } BuildPipeline.SetPlaybackEngineDirectory(target, BuildOptions.None, (string)current1.basePath); InternalEditorUtility.SetPlatformPath((string)current1.basePath); ModuleManager.s_PackageManager.LoadPackage(current1); } } } return(true); }