| using System.Linq; | |
| using UnityEngine; | |
| using UnityEditor; | |
| using UnityEditor.Build; | |
| using UnityEditor.Build.Reporting; | |
| namespace Unity.MLAgents.Editor | |
| { | |
| internal class MLAgentsSettingsBuildProvider : IPreprocessBuildWithReport, IPostprocessBuildWithReport | |
| { | |
| public int callbackOrder => 0; | |
| public void OnPreprocessBuild(BuildReport report) | |
| { | |
| if (!EditorUtility.IsPersistent(MLAgentsSettingsManager.Settings)) | |
| return; | |
| var preloadedAssets = PlayerSettings.GetPreloadedAssets().ToList(); | |
| if (!preloadedAssets.Contains(MLAgentsSettingsManager.Settings)) | |
| { | |
| preloadedAssets.Add(MLAgentsSettingsManager.Settings); | |
| PlayerSettings.SetPreloadedAssets(preloadedAssets.ToArray()); | |
| } | |
| } | |
| public void OnPostprocessBuild(BuildReport report) | |
| { | |
| var preloadedAssets = PlayerSettings.GetPreloadedAssets().ToList(); | |
| if (preloadedAssets.Contains(MLAgentsSettingsManager.Settings)) | |
| { | |
| preloadedAssets.Remove(MLAgentsSettingsManager.Settings); | |
| PlayerSettings.SetPreloadedAssets(preloadedAssets.ToArray()); | |
| } | |
| } | |
| } | |
| } | |