| 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()); |
| } |
| } |
| } |
| } |
|
|