Ejemplo n.º 1
0
    public static void DrawInspector()
    {
        if (currentBundle == null)
        {
            GUILayout.FlexibleSpace();
            GUILayout.Label("Select bundle to check its content.");
            GUILayout.FlexibleSpace();
            return;
        }

        m_ScrollViewPosition = EditorGUILayout.BeginScrollView(m_ScrollViewPosition);
        {
            // Bundle type and version
            BundleBuildState buildStates = BundleManager.GetBuildStateOfBundle(currentBundle.name);
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.Label(currentBundle.sceneBundle ? "Scene bundle" : "Asset bundle", BMGUIStyles.GetBuildinStyle("BoldLabel"));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Version " + buildStates.version, BMGUIStyles.GetBuildinStyle("BoldLabel"));
            }
            EditorGUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            {
                string sizeStr = "Build Size " + (buildStates.size == -1 ? "Unkown" : Mathf.CeilToInt(buildStates.size / 1024f) + " KB");
                GUILayout.Label(sizeStr, BMGUIStyles.GetBuildinStyle("BoldLabel"));
                GUILayout.FlexibleSpace();
                GUILayout.Label("Priority", EditorStyles.boldLabel);
                currentBundle.priority = EditorGUILayout.Popup(currentBundle.priority, new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, GUILayout.MaxWidth(40));
            }
            GUILayout.EndHorizontal();

            GUILayout.Space(5);

            EditorGUILayout.BeginVertical(BMGUIStyles.GetBuildinStyle("Wizard Box"));
            {
                GUI_Inlcudes();
                GUI_DependencyList();
            }
            EditorGUILayout.EndVertical();
        }
        EditorGUILayout.EndScrollView();
    }
Ejemplo n.º 2
0
    public override void OnInspectorGUI()
    {
        EditorGUILayout.BeginVertical();
        {
            BuildConfiger.Compress                = EditorGUILayout.Toggle("Compress", BuildConfiger.Compress);
            BuildConfiger.DeterministicBundle     = EditorGUILayout.Toggle("Deterministic", BuildConfiger.DeterministicBundle);
            BuildConfiger.BundleSuffix            = EditorGUILayout.TextField("Bundle Suffix", BuildConfiger.BundleSuffix);
            DownloadConfiger.useCache             = EditorGUILayout.Toggle("Use Unity Cache", DownloadConfiger.useCache);
            DownloadConfiger.downloadThreadsCount = EditorGUILayout.IntField("Download Thread Limit", DownloadConfiger.downloadThreadsCount);
            DownloadConfiger.retryTime            = EditorGUILayout.IntField("Error Retry Time", DownloadConfiger.retryTime);

            EditorGUILayout.BeginVertical(BMGUIStyles.GetBuildinStyle("Wizard Box"));
            {
                BuildConfiger.UseEditorTarget = EditorGUILayout.Toggle("Use Editor Target", BuildConfiger.UseEditorTarget);

                if (!BuildConfiger.UseEditorTarget)
                {
                    BuildPlatform origPlatform = BuildConfiger.BundleBuildTarget;
                    BuildPlatform newPlatform  = (BuildPlatform)EditorGUILayout.EnumPopup("Build Target", (System.Enum)origPlatform);
                    if (origPlatform != newPlatform)
                    {
                        GUIUtility.keyboardControl      = 0;                    // Remove the focuse on path text field
                        BuildConfiger.BundleBuildTarget = newPlatform;
                        PlayerPrefs.SetInt("BundleManagerPlatform", (int)newPlatform);
                    }
                }
                else
                {
                    BuildConfiger.UnityBuildTarget = EditorUserBuildSettings.activeBuildTarget;
                }

                EditorGUILayout.BeginHorizontal();
                {
                    BuildConfiger.BuildOutputStr = EditorGUILayout.TextField("Output Path", BuildConfiger.BuildOutputStr);
                    if (GUILayout.Button("...", GUILayout.MaxWidth(24)))
                    {
                        GUIUtility.keyboardControl = 0;                         // Remove the focuse on path text field
                        string origPath      = BuildConfiger.InterpretedOutputPath;
                        string newOutputPath = EditorUtility.OpenFolderPanel("Choose Output Path", origPath, "");
                        if (newOutputPath != "" && newOutputPath != origPath)
                        {
                            BuildConfiger.BuildOutputStr = newOutputPath;
                        }
                    }
                } EditorGUILayout.EndHorizontal();

                if (!DownloadConfiger.downloadFromOutput)
                {
                    DownloadConfiger.downloadUrl = EditorGUILayout.TextField("Download Url", DownloadConfiger.downloadUrl);
                }

                DownloadConfiger.downloadFromOutput = EditorGUILayout.Toggle("Download from Output", DownloadConfiger.downloadFromOutput);
            } EditorGUILayout.EndVertical();

            if (GUILayout.Button("Export Config File To Output"))
            {
                BuildHelper.ExportBMConfigerFileToOutput();
            }

            GUILayout.FlexibleSpace();
        } EditorGUILayout.EndVertical();

        if (GUI.changed)
        {
            BMDataAccessor.SaveBMConfiger();
            BMDataAccessor.SaveUrls();
        }
    }
Ejemplo n.º 3
0
    void OnGUI()
    {
        if (m_DragHandler == null)
        {
            // Setup GUI handler
            m_DragHandler = new GUIDragHandler();
            m_DragHandler.dragIdentifier = "BundleTreeView";
            m_DragHandler.AddRecieveIdentifier(m_DragHandler.dragIdentifier);
            m_DragHandler.canRecieveCallBack = OnCanRecieve;
            m_DragHandler.reciveDragCallBack = OnRecieve;
        }

        if (Event.current.type == EventType.MouseDown || Event.current.type == EventType.DragUpdated || !HasFocuse())
        {
            // Any mouse down msg or lose focuse will cancle the edit waiting process
            m_EditWaitStartTime = -1;
            m_EditWaitBundle    = "";
        }

        Rect curWindowRect = EditorGUILayout.BeginVertical(BMGUIStyles.GetBuildinStyle("OL Box"));

        {
            // Update rect info
            if (Event.current.type != EventType.Layout)
            {
                m_rect = curWindowRect;
            }

            // Toobar
            EditorGUILayout.BeginHorizontal(EditorStyles.toolbar, GUILayout.ExpandWidth(true));
            {
                // Create drop down
                Rect createBtnRect = GUILayoutUtility.GetRect(new GUIContent("Create"), EditorStyles.toolbarDropDown, GUILayout.ExpandWidth(false));
                if (GUI.Button(createBtnRect, "Create", EditorStyles.toolbarDropDown))
                {
                    GenericMenu menu = new GenericMenu();
                    if (m_Selections.Count <= 1)
                    {
                        menu.AddItem(new GUIContent("Scene Bundle"), false, CreateSceneBundle);
                        menu.AddItem(new GUIContent("Asset Bundle"), false, CreateAssetBundle);
                        //menu.AddItem(new GUIContent("UIView Bundle"), false, CreateUIViewBundle);
                        //menu.AddItem(new GUIContent("Level Bundle"), false, CreateLevelBundle);
                        menu.AddItem(new GUIContent("Player Bundle"), false, CreatePlayerBundle);
                        menu.AddItem(new GUIContent("Monster Bundle"), false, CreateMonsterBundle);
                        menu.AddItem(new GUIContent("Config Bundle"), false, CreateConfigBundle);
                        menu.AddItem(new GUIContent("Equip Bundle"), false, CreateEquipBundle);
                        menu.AddItem(new GUIContent("Audio Bundle"), false, CreateAudioBundle);
                        menu.AddItem(new GUIContent("Skill Bundle"), false, CreateSkillBundle);
                        menu.AddItem(new GUIContent("BigTex Bundle"), false, CreateBigTexBundle);
                        menu.AddItem(new GUIContent("Ai Bundle"), false, CreateAiBundle);
                        menu.AddItem(new GUIContent("Child View"), false, CreateChildView);
                        menu.AddItem(new GUIContent("Big Item Texture"), false, CreateBigItemTex);
                        //         menu.AddItem(new GUIContent("Head Icons"), false, CreateHeadIcons);
                        menu.AddItem(new GUIContent("Newbie"), false, CreateNewbie);
                        menu.AddItem(new GUIContent("Tavern Texture"), false, CreateTavernTex);
                        menu.AddItem(new GUIContent("Create all Bundles"), false, CreateAllBundles);
                        menu.AddItem(new GUIContent("Remove all Bundles"), false, RemoveAllBundles);
                        menu.AddItem(new GUIContent("Clean cache Bundles"), false, CleanCacheBundles);
                        menu.AddItem(new GUIContent("Clean old Bundles"), false, CleanOldBundles);

                        menu.AddItem(new GUIContent("Build IIPS IFS"), false, BuildIIPSPack);
                    }
                    else
                    {
                        menu.AddItem(new GUIContent("Scene Bundle"), false, null);
                        menu.AddItem(new GUIContent("Asset Bundle"), false, null);
                        // menu.AddItem(new GUIContent("UIView Bundle"), false, null);
                        // menu.AddItem(new GUIContent("Level Bundle"), false, null);
                        menu.AddItem(new GUIContent("Player Bundle"), false, null);
                        menu.AddItem(new GUIContent("Monster Bundle"), false, null);
                        menu.AddItem(new GUIContent("Config Bundle"), false, null);
                        menu.AddItem(new GUIContent("Equip Bundle"), false, null);
                        menu.AddItem(new GUIContent("Audio Bundle"), false, null);
                        menu.AddItem(new GUIContent("Skill Bundle"), false, null);
                        menu.AddItem(new GUIContent("BitTex Bundle"), false, null);
                        menu.AddItem(new GUIContent("Ai Bundle"), false, null);
                        menu.AddItem(new GUIContent("Create all Bundle"), false, null);
                        menu.AddItem(new GUIContent("Build IIPS IFS"), false, null);
                    }
                    menu.DropDown(createBtnRect);
                }

                // Build button
                Rect buildBtnRect = GUILayoutUtility.GetRect(new GUIContent("Build"), EditorStyles.toolbarDropDown, GUILayout.ExpandWidth(false));
                if (GUI.Button(buildBtnRect, "Build", EditorStyles.toolbarDropDown))
                {
                    GenericMenu menu = new GenericMenu();
                    menu.AddItem(new GUIContent("Build Selection"), false, BuildSelection);
                    menu.AddItem(new GUIContent("Rebuild Selection"), false, RebuildSelection);
                    menu.AddItem(new GUIContent("Build All"), false, BuildAll);
                    menu.AddItem(new GUIContent("Rebuild All"), false, RebuildAll);
                    menu.AddItem(new GUIContent("Clear"), false, ClearOutputs);
                    menu.DropDown(buildBtnRect);
                }

                GUILayout.FlexibleSpace();

                if (GUILayout.Button("Settings", EditorStyles.toolbarButton))
                {
                    BMSettingsEditor.Show();
                }
            }
            EditorGUILayout.EndHorizontal();

            // Tree view
            m_ScrollPos = EditorGUILayout.BeginScrollView(m_ScrollPos);
            {
                m_CurrentShowingBundles.Clear();

                foreach (BundleData rootBundle in BundleManager.Roots)
                {
                    if (!GUI_TreeItem(0, rootBundle.name))
                    {
                        Repaint();
                        break;
                    }
                }

                m_LastTimeShowingBundles.Clear();
                m_LastTimeShowingBundles.AddRange(m_CurrentShowingBundles);

                if (m_CurrentEditing == "")
                {
                    ArrowKeyProcess();
                    HotkeyProcess();
                }

                // Empty space for root selection
                Rect spaceRect = EditorGUILayout.BeginVertical();
                GUILayout.Space(m_ItemHeight);
                EditorGUILayout.EndVertical();
                RootSpaceProcess(spaceRect);
            } EditorGUILayout.EndScrollView();

            Rect scrollViewRect = GUILayoutUtility.GetLastRect();
            if (scrollViewRect.height != 1)
            {
                UpdateScrollBarBySelection(scrollViewRect.height);
            }
        } EditorGUILayout.EndVertical();
    }