public void AddressableAssetSettings_GetDataBuilder_CannotGetDataBuilderFromEmpty() { var testSettings = new AddressableAssetSettings(); while (!IsNullOrEmpty(testSettings.DataBuilders)) { testSettings.RemoveDataBuilder(0); } Assert.AreEqual(0, testSettings.DataBuilders.Count); Assert.IsNull(testSettings.GetDataBuilder(1)); }
public static void SetDataBuilder(string name = "Use Existing Build (requires built groups)") { AddressableAssetSettings settings = AddressableAssetSettingsDefaultObject.Settings; for (int i = 0; i < settings.DataBuilders.Count; i++) { var dataBuilder = settings.GetDataBuilder(i); if (name == dataBuilder.Name) { AddressableAssetSettingsDefaultObject.Settings.ActivePlayModeDataBuilderIndex = i; return; } } }
void TopToolbar(Rect toolbarPos) { if (m_SearchStyles == null) { m_SearchStyles = new List <GUIStyle>(); m_SearchStyles.Add(GetStyle("ToolbarSeachTextFieldPopup")); //GetStyle("ToolbarSeachTextField"); m_SearchStyles.Add(GetStyle("ToolbarSeachCancelButton")); m_SearchStyles.Add(GetStyle("ToolbarSeachCancelButtonEmpty")); } if (m_ButtonStyle == null) { m_ButtonStyle = GetStyle("ToolbarButton"); } if (m_CogIcon == null) { m_CogIcon = EditorGUIUtility.FindTexture("_Popup"); } GUILayout.BeginArea(new Rect(0, 0, toolbarPos.width, k_SearchHeight)); GUILayout.BeginHorizontal(EditorStyles.toolbar); { float spaceBetween = 4f; { var guiMode = new GUIContent("Create"); Rect rMode = GUILayoutUtility.GetRect(guiMode, EditorStyles.toolbarDropDown); if (EditorGUI.DropdownButton(rMode, guiMode, FocusType.Passive, EditorStyles.toolbarDropDown)) { var menu = new GenericMenu(); foreach (var templateObject in settings.GroupTemplateObjects) { if (templateObject != null) { menu.AddItem(new GUIContent("Group/" + templateObject.name), false, m_EntryTree.CreateNewGroup, templateObject); } } menu.AddSeparator(string.Empty); menu.AddItem(new GUIContent("Group/Blank (no schema)"), false, m_EntryTree.CreateNewGroup, null); menu.DropDown(rMode); } } CreateProfileDropdown(); { var guiMode = new GUIContent("Tools"); Rect rMode = GUILayoutUtility.GetRect(guiMode, EditorStyles.toolbarDropDown); if (EditorGUI.DropdownButton(rMode, guiMode, FocusType.Passive, EditorStyles.toolbarDropDown)) { var menu = new GenericMenu(); menu.AddItem(new GUIContent("Inspect System Settings"), false, () => { EditorApplication.ExecuteMenuItem("Window/General/Inspector"); EditorGUIUtility.PingObject(AddressableAssetSettingsDefaultObject.Settings); Selection.activeObject = AddressableAssetSettingsDefaultObject.Settings; }); menu.AddItem(new GUIContent("Profiles"), false, () => EditorWindow.GetWindow <ProfileWindow>().Show(true)); menu.AddItem(new GUIContent("Labels"), false, () => EditorWindow.GetWindow <LabelWindow>(true).Intialize(settings)); menu.AddItem(new GUIContent("Analyze"), false, AnalyzeWindow.ShowWindow); menu.AddItem(new GUIContent("Hosting Services"), false, () => EditorWindow.GetWindow <HostingServicesWindow>().Show(settings)); menu.AddItem(new GUIContent("Event Viewer"), false, ResourceProfilerWindow.ShowWindow); menu.AddItem(new GUIContent("Check for Content Update Restrictions"), false, OnPrepareUpdate); menu.AddItem(new GUIContent("Show Sprite and Subobject Addresses"), ProjectConfigData.showSubObjectsInGroupView, () => { ProjectConfigData.showSubObjectsInGroupView = !ProjectConfigData.showSubObjectsInGroupView; m_EntryTree.Reload(); }); var bundleList = AssetDatabase.GetAllAssetBundleNames(); if (bundleList != null && bundleList.Length > 0) { menu.AddItem(new GUIContent("Convert Legacy AssetBundles"), false, () => window.OfferToConvert(AddressableAssetSettingsDefaultObject.Settings)); } menu.DropDown(rMode); } } GUILayout.FlexibleSpace(); GUILayout.Space(spaceBetween * 2f); { GUILayout.Space(8); var guiMode = new GUIContent("Play Mode Script"); Rect rMode = GUILayoutUtility.GetRect(guiMode, EditorStyles.toolbarDropDown); if (EditorGUI.DropdownButton(rMode, guiMode, FocusType.Passive, EditorStyles.toolbarDropDown)) { var menu = new GenericMenu(); for (int i = 0; i < settings.DataBuilders.Count; i++) { var m = settings.GetDataBuilder(i); if (m.CanBuildData <AddressablesPlayModeBuildResult>()) { menu.AddItem(new GUIContent(m.Name), i == settings.ActivePlayModeDataBuilderIndex, OnSetActivePlayModeScript, i); } } menu.DropDown(rMode); } } var guiBuild = new GUIContent("Build"); Rect rBuild = GUILayoutUtility.GetRect(guiBuild, EditorStyles.toolbarDropDown); if (EditorGUI.DropdownButton(rBuild, guiBuild, FocusType.Passive, EditorStyles.toolbarDropDown)) { //GUIUtility.hotControl = 0; var menu = new GenericMenu(); var AddressablesPlayerBuildResultBuilderExists = false; for (int i = 0; i < settings.DataBuilders.Count; i++) { var m = settings.GetDataBuilder(i); if (m.CanBuildData <AddressablesPlayerBuildResult>()) { AddressablesPlayerBuildResultBuilderExists = true; menu.AddItem(new GUIContent("New Build/" + m.Name), false, OnBuildScript, i); } } if (!AddressablesPlayerBuildResultBuilderExists) { menu.AddDisabledItem(new GUIContent("New Build/No Build Script Available")); } menu.AddItem(new GUIContent("Update a Previous Build"), false, OnUpdateBuild); menu.AddItem(new GUIContent("Clean Build/All"), false, OnCleanAll); menu.AddItem(new GUIContent("Clean Build/Content Builders/All"), false, OnCleanAddressables, null); for (int i = 0; i < settings.DataBuilders.Count; i++) { var m = settings.GetDataBuilder(i); menu.AddItem(new GUIContent("Clean Build/Content Builders/" + m.Name), false, OnCleanAddressables, m); } menu.AddItem(new GUIContent("Clean Build/Build Pipeline Cache"), false, OnCleanSBP); menu.DropDown(rBuild); } GUILayout.Space(4); Rect searchRect = GUILayoutUtility.GetRect(0, toolbarPos.width * 0.6f, 16f, 16f, m_SearchStyles[0], GUILayout.MinWidth(65), GUILayout.MaxWidth(300)); Rect popupPosition = searchRect; popupPosition.width = 20; if (Event.current.type == EventType.MouseDown && popupPosition.Contains(Event.current.mousePosition)) { var menu = new GenericMenu(); menu.AddItem(new GUIContent("Hierarchical Search"), ProjectConfigData.hierarchicalSearch, OnHierSearchClick); menu.DropDown(popupPosition); } else { var baseSearch = ProjectConfigData.hierarchicalSearch ? m_EntryTree.customSearchString : m_EntryTree.searchString; var searchString = m_SearchField.OnGUI(searchRect, baseSearch, m_SearchStyles[0], m_SearchStyles[1], m_SearchStyles[2]); if (baseSearch != searchString) { m_EntryTree?.Search(searchString); } } } GUILayout.EndHorizontal(); GUILayout.EndArea(); }