Ejemplo n.º 1
0
        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();
        }