public AddressableAssetsSettingsGroupEditor(AddressableAssetsWindow w) { window = w; settings = AddressableAssetSettingsDefaultObject.Settings; m_VerticalSplitterPercent = 0.8f; OnEnable(); }
static void SelectEntriesInGroupsWindow(List <TargetInfo> targets) { AddressableAssetsWindow.Init(); var window = EditorWindow.GetWindow <AddressableAssetsWindow>(); List <AddressableAssetEntry> entries = new List <AddressableAssetEntry>(targets.Count); foreach (TargetInfo info in targets) { if (info.Entry != null) { entries.Add(info.Entry); } } window.SelectAssetsInGroupEditor(entries); }
static void DrawSelectEntriesButton(List <TargetInfo> targets) { var prevGuiEnabled = UnityEngine.GUI.enabled; UnityEngine.GUI.enabled = true; if (GUILayout.Button("Select")) { AddressableAssetsWindow.Init(); var window = EditorWindow.GetWindow <AddressableAssetsWindow>(); List <AddressableAssetEntry> entries = new List <AddressableAssetEntry>(targets.Count); foreach (TargetInfo info in targets) { if (info.MainAssetEntry != null) { if (info.IsMainAsset == false && ProjectConfigData.ShowSubObjectsInGroupView) { List <AddressableAssetEntry> subs = new List <AddressableAssetEntry>(); info.MainAssetEntry.GatherAllAssets(subs, false, true, true); foreach (AddressableAssetEntry sub in subs) { if (sub.TargetAsset == info.TargetObject) { entries.Add(sub); break; } } } else { entries.Add(info.MainAssetEntry); } } } if (entries.Count > 0) { window.SelectAssetsInGroupEditor(entries); } } UnityEngine.GUI.enabled = prevGuiEnabled; }
public override void OnInspectorGUI() { serializedObject.UpdateIfRequiredOrScript(); // use updated values GUILayout.Space(8); if (GUILayout.Button("Manage Groups", "Minibutton", GUILayout.ExpandWidth(true))) { AddressableAssetsWindow.Init(); } GUILayout.Space(12); m_ProfilesFoldout = EditorGUILayout.Foldout(m_ProfilesFoldout, "Profile"); if (m_ProfilesFoldout) { if (m_AasTarget.profileSettings.profiles.Count > 0) { if (m_CurrentProfileIndex < 0 || m_CurrentProfileIndex >= m_AasTarget.profileSettings.profiles.Count) { m_CurrentProfileIndex = 0; } var profileNames = m_AasTarget.profileSettings.GetAllProfileNames(); // Current profile in use was changed by different window if (AddressableAssetSettingsDefaultObject.Settings.profileSettings.profiles[m_CurrentProfileIndex].id != AddressableAssetSettingsDefaultObject.Settings.activeProfileId) { m_CurrentProfileIndex = profileNames.IndexOf(AddressableAssetSettingsDefaultObject.Settings.profileSettings.GetProfileName(AddressableAssetSettingsDefaultObject.Settings.activeProfileId)); } m_CurrentProfileIndex = EditorGUILayout.Popup(m_ProfileInUse, m_CurrentProfileIndex, profileNames.ToArray()); AddressableAssetSettingsDefaultObject.Settings.activeProfileId = AddressableAssetSettingsDefaultObject.Settings.profileSettings.GetProfileId(profileNames[m_CurrentProfileIndex]); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Manage Profiles", "Minibutton")) { EditorWindow.GetWindow <ProfileWindow>().Show(true); } EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.LabelField("No valid profiles found"); } } GUILayout.Space(6); m_CatalogFoldout = EditorGUILayout.Foldout(m_CatalogFoldout, "Catalog"); if (m_CatalogFoldout) { m_AasTarget.DisableCatalogUpdateOnStartup = EditorGUILayout.Toggle(m_CheckForCatalogUpdateOnInit, m_AasTarget.DisableCatalogUpdateOnStartup); m_AasTarget.OverridePlayerVersion = EditorGUILayout.TextField(m_OverridePlayerVersion, m_AasTarget.OverridePlayerVersion); m_AasTarget.BuildRemoteCatalog = EditorGUILayout.Toggle(m_BuildRemoteCatalog, m_AasTarget.BuildRemoteCatalog); if ((m_AasTarget.RemoteCatalogBuildPath != null && m_AasTarget.RemoteCatalogLoadPath != null) && // these will never actually be null, as the accessor initializes them. (m_AasTarget.BuildRemoteCatalog)) { EditorGUILayout.PropertyField(serializedObject.FindProperty("m_RemoteCatalogBuildPath"), m_RemoteCatBuildPath); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_RemoteCatalogLoadPath"), m_RemoteCatLoadPath); } } GUILayout.Space(6); m_GeneralFoldout = EditorGUILayout.Foldout(m_GeneralFoldout, "General"); if (m_GeneralFoldout) { ProjectConfigData.postProfilerEvents = EditorGUILayout.Toggle(m_SendProfilerEvents, ProjectConfigData.postProfilerEvents); m_AasTarget.buildSettings.LogResourceManagerExceptions = EditorGUILayout.Toggle(m_LogRuntimeExceptions, m_AasTarget.buildSettings.LogResourceManagerExceptions); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_CertificateHandlerType"), m_CertificateHandlerType); m_AasTarget.UniqueBundleIds = EditorGUILayout.Toggle(m_UniqueBundles, m_AasTarget.UniqueBundleIds); } GUILayout.Space(6); m_DataBuildersFoldout = EditorGUILayout.Foldout(m_DataBuildersFoldout, "Build and Play Mode Scripts"); if (m_DataBuildersFoldout) { m_DataBuildersRl.DoLayoutList(); } GUILayout.Space(6); m_GroupTemplateObjectsFoldout = EditorGUILayout.Foldout(m_GroupTemplateObjectsFoldout, "Asset Group Templates"); if (m_GroupTemplateObjectsFoldout) { m_GroupTemplateObjectsRl.DoLayoutList(); } GUILayout.Space(6); m_InitObjectsFoldout = EditorGUILayout.Foldout(m_InitObjectsFoldout, "Initialization Objects"); if (m_InitObjectsFoldout) { m_InitObjectsRl.DoLayoutList(); } serializedObject.ApplyModifiedProperties(); }
public AddressableAssetsSettingsGroupEditor(AddressableAssetsWindow w) { window = w; m_VerticalSplitterPercent = 0.8f; OnEnable(); }
public override void OnInspectorGUI() { m_QueuedChanges.Clear(); serializedObject.UpdateIfRequiredOrScript(); // use updated values EditorGUI.BeginChangeCheck(); GUILayout.Space(8); if (GUILayout.Button("Manage Groups", "Minibutton", GUILayout.ExpandWidth(true))) { AddressableAssetsWindow.Init(); } GUILayout.Space(12); m_ProfilesFoldout = EditorGUILayout.Foldout(m_ProfilesFoldout, "Profile"); if (m_ProfilesFoldout) { if (m_AasTarget.profileSettings.profiles.Count > 0) { if (m_CurrentProfileIndex < 0 || m_CurrentProfileIndex >= m_AasTarget.profileSettings.profiles.Count) { m_CurrentProfileIndex = 0; } var profileNames = m_AasTarget.profileSettings.GetAllProfileNames(); int currentProfileIndex = m_CurrentProfileIndex; // Current profile in use was changed by different window if (AddressableAssetSettingsDefaultObject.Settings.profileSettings.profiles[m_CurrentProfileIndex].id != AddressableAssetSettingsDefaultObject.Settings.activeProfileId) { currentProfileIndex = profileNames.IndexOf(AddressableAssetSettingsDefaultObject.Settings.profileSettings.GetProfileName(AddressableAssetSettingsDefaultObject.Settings.activeProfileId)); if (currentProfileIndex != m_CurrentProfileIndex) { m_QueuedChanges.Add(() => m_CurrentProfileIndex = currentProfileIndex); } } currentProfileIndex = EditorGUILayout.Popup(m_ProfileInUse, currentProfileIndex, profileNames.ToArray()); if (currentProfileIndex != m_CurrentProfileIndex) { m_QueuedChanges.Add(() => m_CurrentProfileIndex = currentProfileIndex); } AddressableAssetSettingsDefaultObject.Settings.activeProfileId = AddressableAssetSettingsDefaultObject.Settings.profileSettings.GetProfileId(profileNames[currentProfileIndex]); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Manage Profiles", "Minibutton")) { EditorWindow.GetWindow <ProfileWindow>().Show(true); } EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.LabelField("No valid profiles found"); } } GUILayout.Space(6); m_CatalogFoldout = EditorGUILayout.Foldout(m_CatalogFoldout, "Catalog"); if (m_CatalogFoldout) { bool disableCatalogOnStartup = EditorGUILayout.Toggle(m_CheckForCatalogUpdateOnInit, m_AasTarget.DisableCatalogUpdateOnStartup); if (disableCatalogOnStartup != m_AasTarget.DisableCatalogUpdateOnStartup) { m_QueuedChanges.Add(() => m_AasTarget.DisableCatalogUpdateOnStartup = disableCatalogOnStartup); } string overridePlayerVersion = EditorGUILayout.TextField(m_OverridePlayerVersion, m_AasTarget.OverridePlayerVersion); if (overridePlayerVersion != m_AasTarget.OverridePlayerVersion) { m_QueuedChanges.Add(() => m_AasTarget.OverridePlayerVersion = overridePlayerVersion); } bool bundleLocalCatalog = EditorGUILayout.Toggle(m_BundleLocalCatalog, m_AasTarget.BundleLocalCatalog); if (bundleLocalCatalog != m_AasTarget.BundleLocalCatalog) { m_QueuedChanges.Add(() => m_AasTarget.BundleLocalCatalog = bundleLocalCatalog); } bool buildRemoteCatalog = EditorGUILayout.Toggle(m_BuildRemoteCatalog, m_AasTarget.BuildRemoteCatalog); if (buildRemoteCatalog != m_AasTarget.BuildRemoteCatalog) { m_QueuedChanges.Add(() => m_AasTarget.BuildRemoteCatalog = buildRemoteCatalog); } if ((m_AasTarget.RemoteCatalogBuildPath != null && m_AasTarget.RemoteCatalogLoadPath != null) && // these will never actually be null, as the accessor initializes them. (buildRemoteCatalog)) { EditorGUILayout.PropertyField(serializedObject.FindProperty("m_RemoteCatalogBuildPath"), m_RemoteCatBuildPath); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_RemoteCatalogLoadPath"), m_RemoteCatLoadPath); } } GUILayout.Space(6); m_GeneralFoldout = EditorGUILayout.Foldout(m_GeneralFoldout, "General"); if (m_GeneralFoldout) { ProjectConfigData.postProfilerEvents = EditorGUILayout.Toggle(m_SendProfilerEvents, ProjectConfigData.postProfilerEvents); bool logResourceManagerExceptions = EditorGUILayout.Toggle(m_LogRuntimeExceptions, m_AasTarget.buildSettings.LogResourceManagerExceptions); if (logResourceManagerExceptions != m_AasTarget.buildSettings.LogResourceManagerExceptions) { m_QueuedChanges.Add(() => m_AasTarget.buildSettings.LogResourceManagerExceptions = logResourceManagerExceptions); } EditorGUILayout.PropertyField(serializedObject.FindProperty("m_CertificateHandlerType"), m_CertificateHandlerType); bool uniqueBundleIds = EditorGUILayout.Toggle(m_UniqueBundles, m_AasTarget.UniqueBundleIds); if (uniqueBundleIds != m_AasTarget.UniqueBundleIds) { m_QueuedChanges.Add(() => m_AasTarget.UniqueBundleIds = uniqueBundleIds); } bool contiguousBundles = EditorGUILayout.Toggle(m_ContiguousBundles, m_AasTarget.ContiguousBundles); if (contiguousBundles != m_AasTarget.ContiguousBundles) { m_QueuedChanges.Add(() => m_AasTarget.ContiguousBundles = contiguousBundles); } var maxWebReqs = EditorGUILayout.IntSlider(m_MaxConcurrentWebRequests, m_AasTarget.MaxConcurrentWebRequests, 1, 1024); if (maxWebReqs != m_AasTarget.MaxConcurrentWebRequests) { m_QueuedChanges.Add(() => m_AasTarget.MaxConcurrentWebRequests = maxWebReqs); } ProjectConfigData.showGroupsAsHierarchy = EditorGUILayout.Toggle(m_groupHierarchyView, ProjectConfigData.showGroupsAsHierarchy); ProjectConfigData.ignoreUnsupportedFilesInBuild = EditorGUILayout.Toggle(m_IgnoreUnsupportedFilesInBuild, ProjectConfigData.ignoreUnsupportedFilesInBuild); } GUILayout.Space(6); m_DataBuildersFoldout = EditorGUILayout.Foldout(m_DataBuildersFoldout, "Build and Play Mode Scripts"); if (m_DataBuildersFoldout) { m_DataBuildersRl.DoLayoutList(); } GUILayout.Space(6); m_GroupTemplateObjectsFoldout = EditorGUILayout.Foldout(m_GroupTemplateObjectsFoldout, "Asset Group Templates"); if (m_GroupTemplateObjectsFoldout) { m_GroupTemplateObjectsRl.DoLayoutList(); } GUILayout.Space(6); m_InitObjectsFoldout = EditorGUILayout.Foldout(m_InitObjectsFoldout, "Initialization Objects"); if (m_InitObjectsFoldout) { m_InitObjectsRl.DoLayoutList(); } if (EditorGUI.EndChangeCheck() || m_QueuedChanges.Count > 0) { Undo.RecordObject(m_AasTarget, "AddressableAssetSettings before changes"); foreach (var change in m_QueuedChanges) { change.Invoke(); } m_AasTarget.SetDirty(AddressableAssetSettings.ModificationEvent.BatchModification, null, true, true); serializedObject.ApplyModifiedProperties(); } }
public override void OnInspectorGUI() { m_QueuedChanges.Clear(); serializedObject.UpdateIfRequiredOrScript(); // use updated values EditorGUI.BeginChangeCheck(); GUILayout.Space(8); if (GUILayout.Button("Manage Groups", "Minibutton", GUILayout.ExpandWidth(true))) { AddressableAssetsWindow.Init(); } GUILayout.Space(12); m_ProfilesFoldout = EditorGUILayout.Foldout(m_ProfilesFoldout, "Profile"); if (m_ProfilesFoldout) { if (m_AasTarget.profileSettings.profiles.Count > 0) { if (m_CurrentProfileIndex < 0 || m_CurrentProfileIndex >= m_AasTarget.profileSettings.profiles.Count) { m_CurrentProfileIndex = 0; } var profileNames = m_AasTarget.profileSettings.GetAllProfileNames(); int currentProfileIndex = m_CurrentProfileIndex; // Current profile in use was changed by different window if (AddressableAssetSettingsDefaultObject.Settings.profileSettings.profiles[m_CurrentProfileIndex].id != AddressableAssetSettingsDefaultObject.Settings.activeProfileId) { currentProfileIndex = profileNames.IndexOf(AddressableAssetSettingsDefaultObject.Settings.profileSettings.GetProfileName(AddressableAssetSettingsDefaultObject.Settings.activeProfileId)); if (currentProfileIndex != m_CurrentProfileIndex) { m_QueuedChanges.Add(() => m_CurrentProfileIndex = currentProfileIndex); } } currentProfileIndex = EditorGUILayout.Popup(m_ProfileInUse, currentProfileIndex, profileNames.ToArray()); if (currentProfileIndex != m_CurrentProfileIndex) { m_QueuedChanges.Add(() => m_CurrentProfileIndex = currentProfileIndex); } AddressableAssetSettingsDefaultObject.Settings.activeProfileId = AddressableAssetSettingsDefaultObject.Settings.profileSettings.GetProfileId(profileNames[currentProfileIndex]); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); if (GUILayout.Button("Manage Profiles", "Minibutton")) { EditorWindow.GetWindow <ProfileWindow>().Show(true); } EditorGUILayout.EndHorizontal(); } else { EditorGUILayout.LabelField("No valid profiles found"); } } GUILayout.Space(6); m_DiagnosticsFoldout = EditorGUILayout.Foldout(m_DiagnosticsFoldout, "Diagnostics"); if (m_DiagnosticsFoldout) { ProjectConfigData.PostProfilerEvents = EditorGUILayout.Toggle(m_SendProfilerEvents, ProjectConfigData.PostProfilerEvents); bool logResourceManagerExceptions = EditorGUILayout.Toggle(m_LogRuntimeExceptions, m_AasTarget.buildSettings.LogResourceManagerExceptions); if (logResourceManagerExceptions != m_AasTarget.buildSettings.LogResourceManagerExceptions) { m_QueuedChanges.Add(() => m_AasTarget.buildSettings.LogResourceManagerExceptions = logResourceManagerExceptions); } } GUILayout.Space(6); m_CatalogFoldout = EditorGUILayout.Foldout(m_CatalogFoldout, "Catalog"); if (m_CatalogFoldout) { string overridePlayerVersion = EditorGUILayout.TextField(m_OverridePlayerVersion, m_AasTarget.OverridePlayerVersion); if (overridePlayerVersion != m_AasTarget.OverridePlayerVersion) { m_QueuedChanges.Add(() => m_AasTarget.OverridePlayerVersion = overridePlayerVersion); } bool bundleLocalCatalog = EditorGUILayout.Toggle(m_BundleLocalCatalog, m_AasTarget.BundleLocalCatalog); if (bundleLocalCatalog != m_AasTarget.BundleLocalCatalog) { m_QueuedChanges.Add(() => m_AasTarget.BundleLocalCatalog = bundleLocalCatalog); } bool optimizeCatalogSize = EditorGUILayout.Toggle(m_OptimizeCatalogSize, m_AasTarget.OptimizeCatalogSize); if (optimizeCatalogSize != m_AasTarget.OptimizeCatalogSize) { m_QueuedChanges.Add(() => m_AasTarget.OptimizeCatalogSize = optimizeCatalogSize); } } GUILayout.Space(6); m_ContentUpdateFoldout = EditorGUILayout.Foldout(m_ContentUpdateFoldout, "Content Update"); if (m_ContentUpdateFoldout) { bool disableCatalogOnStartup = EditorGUILayout.Toggle(m_CheckForCatalogUpdateOnInit, m_AasTarget.DisableCatalogUpdateOnStartup); if (disableCatalogOnStartup != m_AasTarget.DisableCatalogUpdateOnStartup) { m_QueuedChanges.Add(() => m_AasTarget.DisableCatalogUpdateOnStartup = disableCatalogOnStartup); } string contentStateBuildPath = EditorGUILayout.TextField(m_ContentStateFileBuildPath, m_AasTarget.ContentStateBuildPath); if (contentStateBuildPath != m_AasTarget.ContentStateBuildPath) { m_QueuedChanges.Add(() => m_AasTarget.ContentStateBuildPath = contentStateBuildPath); } bool buildRemoteCatalog = EditorGUILayout.Toggle(m_BuildRemoteCatalog, m_AasTarget.BuildRemoteCatalog); if (buildRemoteCatalog != m_AasTarget.BuildRemoteCatalog) { m_QueuedChanges.Add(() => m_AasTarget.BuildRemoteCatalog = buildRemoteCatalog); } if ((m_AasTarget.RemoteCatalogBuildPath != null && m_AasTarget.RemoteCatalogLoadPath != null) && // these will never actually be null, as the accessor initializes them. (buildRemoteCatalog)) { EditorGUILayout.PropertyField(serializedObject.FindProperty("m_RemoteCatalogBuildPath"), m_RemoteCatBuildPath); EditorGUILayout.PropertyField(serializedObject.FindProperty("m_RemoteCatalogLoadPath"), m_RemoteCatLoadPath); } } GUILayout.Space(6); m_DownloadsFoldout = EditorGUILayout.Foldout(m_DownloadsFoldout, "Downloads"); if (m_DownloadsFoldout) { EditorGUILayout.PropertyField(serializedObject.FindProperty("m_CertificateHandlerType"), m_CertificateHandlerType); var maxWebReqs = EditorGUILayout.IntSlider(m_MaxConcurrentWebRequests, m_AasTarget.MaxConcurrentWebRequests, 1, 1024); if (maxWebReqs != m_AasTarget.MaxConcurrentWebRequests) { m_QueuedChanges.Add(() => m_AasTarget.MaxConcurrentWebRequests = maxWebReqs); } var catalogTimeouts = EditorGUILayout.IntField(m_CatalogTimeout, m_AasTarget.CatalogRequestsTimeout); if (catalogTimeouts != m_AasTarget.CatalogRequestsTimeout) { m_QueuedChanges.Add(() => m_AasTarget.CatalogRequestsTimeout = catalogTimeouts); } } GUILayout.Space(6); m_BuildFoldout = EditorGUILayout.Foldout(m_BuildFoldout, "Build"); if (m_BuildFoldout) { bool ignoreUnsupportedFilesInBuild = EditorGUILayout.Toggle(m_IgnoreUnsupportedFilesInBuild, m_AasTarget.IgnoreUnsupportedFilesInBuild); if (ignoreUnsupportedFilesInBuild != m_AasTarget.IgnoreUnsupportedFilesInBuild) { m_QueuedChanges.Add(() => m_AasTarget.IgnoreUnsupportedFilesInBuild = ignoreUnsupportedFilesInBuild); } bool uniqueBundleIds = EditorGUILayout.Toggle(m_UniqueBundles, m_AasTarget.UniqueBundleIds); if (uniqueBundleIds != m_AasTarget.UniqueBundleIds) { m_QueuedChanges.Add(() => m_AasTarget.UniqueBundleIds = uniqueBundleIds); } bool contiguousBundles = EditorGUILayout.Toggle(m_ContiguousBundles, m_AasTarget.ContiguousBundles); if (contiguousBundles != m_AasTarget.ContiguousBundles) { m_QueuedChanges.Add(() => m_AasTarget.ContiguousBundles = contiguousBundles); } #if !NONRECURSIVE_DEPENDENCY_DATA EditorGUI.BeginDisabledGroup(true); #endif bool nonRecursiveBuilding = EditorGUILayout.Toggle(m_NonRecursiveBundleBuilding, m_AasTarget.NonRecursiveBuilding); if (nonRecursiveBuilding != m_AasTarget.NonRecursiveBuilding) { m_QueuedChanges.Add(() => m_AasTarget.NonRecursiveBuilding = nonRecursiveBuilding); } #if !NONRECURSIVE_DEPENDENCY_DATA EditorGUI.EndDisabledGroup(); #endif ShaderBundleNaming shaderBundleNaming = (ShaderBundleNaming)EditorGUILayout.Popup(m_ShaderBundleNaming, (int)m_AasTarget.ShaderBundleNaming, new[] { "Project Name Hash (Legacy)", "Default Group GUID", "Custom" }); if (shaderBundleNaming != m_AasTarget.ShaderBundleNaming) { m_QueuedChanges.Add(() => m_AasTarget.ShaderBundleNaming = shaderBundleNaming); } if (shaderBundleNaming == ShaderBundleNaming.Custom) { string customShaderBundleName = EditorGUILayout.TextField(m_ShaderBundleCustomNaming, m_AasTarget.ShaderBundleCustomNaming); if (customShaderBundleName != m_AasTarget.ShaderBundleCustomNaming) { m_QueuedChanges.Add(() => m_AasTarget.ShaderBundleCustomNaming = customShaderBundleName); } } MonoScriptBundleNaming monoBundleNaming = (MonoScriptBundleNaming)EditorGUILayout.Popup(m_MonoBundleNaming, (int)m_AasTarget.MonoScriptBundleNaming, new[] { "Disabled", "Project Name", "Default Group GUID", "Custom" }); if (monoBundleNaming != m_AasTarget.MonoScriptBundleNaming) { m_QueuedChanges.Add(() => m_AasTarget.MonoScriptBundleNaming = monoBundleNaming); } if (monoBundleNaming == MonoScriptBundleNaming.Custom) { string customMonoScriptBundleName = EditorGUILayout.TextField(m_MonoBundleCustomNaming, m_AasTarget.MonoScriptBundleCustomNaming); if (customMonoScriptBundleName != m_AasTarget.MonoScriptBundleCustomNaming) { m_QueuedChanges.Add(() => m_AasTarget.MonoScriptBundleCustomNaming = customMonoScriptBundleName); } } #if UNITY_2019_4_OR_NEWER bool stripUnityVersion = EditorGUILayout.Toggle(m_StripUnityVersionFromBundleBuild, m_AasTarget.StripUnityVersionFromBundleBuild); if (stripUnityVersion != m_AasTarget.StripUnityVersionFromBundleBuild) { m_QueuedChanges.Add(() => m_AasTarget.StripUnityVersionFromBundleBuild = stripUnityVersion); } #endif bool disableVisibleSubAssetRepresentations = EditorGUILayout.Toggle(m_DisableVisibleSubAssetRepresentations, m_AasTarget.DisableVisibleSubAssetRepresentations); if (disableVisibleSubAssetRepresentations != m_AasTarget.DisableVisibleSubAssetRepresentations) { m_QueuedChanges.Add(() => m_AasTarget.DisableVisibleSubAssetRepresentations = disableVisibleSubAssetRepresentations); } } GUILayout.Space(6); m_DataBuildersFoldout = EditorGUILayout.Foldout(m_DataBuildersFoldout, "Build and Play Mode Scripts"); if (m_DataBuildersFoldout) { m_DataBuildersRl.DoLayoutList(); } GUILayout.Space(6); m_GroupTemplateObjectsFoldout = EditorGUILayout.Foldout(m_GroupTemplateObjectsFoldout, "Asset Group Templates"); if (m_GroupTemplateObjectsFoldout) { m_GroupTemplateObjectsRl.DoLayoutList(); } GUILayout.Space(6); m_InitObjectsFoldout = EditorGUILayout.Foldout(m_InitObjectsFoldout, "Initialization Objects"); if (m_InitObjectsFoldout) { m_InitObjectsRl.DoLayoutList(); } if (EditorGUI.EndChangeCheck() || m_QueuedChanges.Count > 0) { Undo.RecordObject(m_AasTarget, "AddressableAssetSettings before changes"); foreach (var change in m_QueuedChanges) { change.Invoke(); } m_AasTarget.SetDirty(AddressableAssetSettings.ModificationEvent.BatchModification, null, true, true); serializedObject.ApplyModifiedProperties(); } }