//--------------------------------------------------------------------------------------------------------------------- static void OnPackageListRequestSuccess(Request <PackageCollection> req) { //Check if HDRP hasn't been installed and add it if that's the case const string HDRP_PACKAGE_NAME = "com.unity.render-pipelines.high-definition"; PackageInfo packageInfo = req.FindPackage(HDRP_PACKAGE_NAME); if (null == packageInfo) { UnityEditor.EditorApplication.LockReloadAssemblies(); RequestJobManager.CreateAddRequest(HDRP_PACKAGE_NAME, OnHDRPPackageAdded, OnHDRPPackageAddFailed); } else { ImportHDRPSample(); } //update json RenderStreamingSettings settings = LoadSettings(); if (null != settings) { PackageInfo renderStreamingPackageInfo = req.FindPackage("com.unity.renderstreaming"); if (null != renderStreamingPackageInfo) { settings.Version = renderStreamingPackageInfo.version; SaveSettings(settings); } } //Change the C# file to trigger recompilation next time "Import in project" is pushed again File.AppendAllText(m_codePath, System.Environment.NewLine + "//Automatically Modified to trigger recompilation"); UnityEditor.AssetDatabase.ImportAsset(m_codePath); }
public IEnumerator VerifyRenderStreamingPackage() { RequestJobManager.CreateListRequest(false, false, OnListRequestSucceeded, OnListRequestFailed); while (!m_listRequestCompleted) { yield return(null); } Assert.True(m_packageFound); }
//--------------------------------------------------------------------------------------------------------------------- public static void TryAddHDRPPackageAndImportSample() { m_sampleImported = false; //Some steps are necessary to "hack" so that Unity will execute this file everytime we click "Import in project" //In the package manager UI. //1. Import the json to make sure that we are dealing with the new settings //2. Change the C# code (this file) a bit to trigger C# compilation, even though the file content is the same //3. One additional requirement that the asset must be in the same path as this C# file Init(); RenderStreamingSettings settings = LoadSettings(); if (null != settings && !string.IsNullOrEmpty(settings.Version)) { m_sampleImported = true; return; } RequestJobManager.CreateListRequest(false, true, OnPackageListRequestSuccess, null); UnityEditor.EditorUtility.DisplayProgressBar(PROGRESS_BAR_TITLE, PROGRESS_BAR_INFO, 0.1f); }
//---------------------------------------------------------------------------------------------------------------------- void TryCopyDCCPluginsFromPackage(Action <string> onSuccess, Action <string> onFail) { RequestJobManager.CreateListRequest(true, true, (listReq) => { PackageInfo packageInfo = listReq.FindPackage(MESHSYNC_DCC_PLUGIN_PACKAGE); if (null != packageInfo) { //Package is already installed. CopyDCCPluginsFromPackage(); onSuccess(packageInfo.version); return; } RequestJobManager.CreateAddRequest(MESHSYNC_DCC_PLUGIN_PACKAGE, (addReq) => { //Package was successfully added CopyDCCPluginsFromPackage(); onSuccess(packageInfo.version); }, (req) => { PackageInfo meshSyncInfo = listReq.FindPackage(MESHSYNC_PACKAGE); onFail?.Invoke(meshSyncInfo.version); }); }, null); }