コード例 #1
0
        //=======================================================
        // method
        //=======================================================

        internal string GetAssetLabel(string path, string extension, string buildPath, string guid)
        {
            for (int i = 0; i < LabelSetting.Count; i++)
            {
                if (LabelSetting[i].CheckLabel(buildPath))
                {
                    return(LabelSetting[i].AssetBundleName);
                }
            }

            switch (DefaultLabelType)
            {
            case AssetBundleLabelType.FileName:
                return(Path.GetFileNameWithoutExtension(path).ToLower());

            case AssetBundleLabelType.RelativePath:
                return(string.IsNullOrEmpty(extension) ? buildPath.ToLower() : buildPath.ToLower().Replace(extension, ""));

            case AssetBundleLabelType.GuidFileName:
                return(guid);

            case AssetBundleLabelType.GuidRelativePath:
                return(FileHelper.pathSlashFix(Path.Combine(Path.GetDirectoryName(buildPath).ToLower(), guid)));
            }
            return(null);
        }
コード例 #2
0
        private static List <EditorAssetInfo> buildTreeViewItemRecursive(DirectoryInfo dirInfo, EditorAssetInfo parent, int depth)
        {
            var items = new List <EditorAssetInfo>();
            var item  = getTreeViewItem(FileHelper.SystemPathToAssetPath(dirInfo.FullName), depth);

            item.Initialize(FileHelper.SystemPathToAssetPath(dirInfo.FullName));
            if (depth != -1)
            {
                items.Add(item);
            }

            var fileInfos = dirInfo.GetFiles("*.*").ToList();

            fileInfos.RemoveAll(f => Path.GetExtension(f.Name).Equals(".meta"));
            for (int i = 0; i < fileInfos.Count; i++)
            {
                var assetPath = FileHelper.SystemPathToAssetPath(fileInfos[i].FullName);
                var child     = getTreeViewItem(assetPath, depth + 1);
                child.Initialize(assetPath);
                items.Add(child);
            }
            //myRoot.children = items;

            foreach (DirectoryInfo di in dirInfo.GetDirectories())
            {
                items.AddRange(buildTreeViewItemRecursive(di, item, depth + 1));
            }

            return(items);
        }
コード例 #3
0
        private void LabelSettingDrawer(DirectoryLabelSetting setting)
        {
            var rect = EditorGUILayout.BeginVertical(GUIHelper.Styles.NoSpaceBox);

            {
                GUI.backgroundColor = setting.IsActive ? Color.green : Color.grey;
                if (GUILayout.Button("", EditorStyles.toolbarButton, GUILayout.ExpandWidth(true)))
                {
                    UndoHelper.BuilderDataUndo("Change DirectoryLabel activation");
                    setting.IsActive = !setting.IsActive;
                    EditorGUIUtility.keyboardControl = 0;
                }
                GUI.backgroundColor = Color.white;

                EditorGUILayout.BeginHorizontal();
                {
                    Undo.IncrementCurrentGroup();
                    UndoHelper.BuilderDataUndo("Change DirectoryLabel Setting");
                    GUILayout.Label("Directory", GUILayout.Width(70));
                    setting.DirectoryName = EditorGUILayout.TextField(setting.DirectoryName);
                    var path = FileHelper.GetDraggedObject(Event.current, GUILayoutUtility.GetLastRect());
                    if (!string.IsNullOrEmpty(path))
                    {
                        setting.DirectoryName = FileHelper.AssetPathToBuildPath(BuildRootPath, path);
                    }
                }
                EditorGUILayout.EndHorizontal();

                if (setting.IsActive)
                {
                    EditorGUILayout.BeginHorizontal();
                    {
                        Undo.IncrementCurrentGroup();
                        UndoHelper.BuilderDataUndo("Change DirectoryLabel Setting");
                        GUILayout.Label("Label", GUILayout.Width(70));
                        setting.AssetBundleName = EditorGUILayout.TextField(setting.AssetBundleName);
                    }
                    EditorGUILayout.EndHorizontal();

                    setting.Type = ( DirectoryLabelNameType )EditorGUILayout.EnumPopup(setting.Type);
                    GUILayout.Space(5);
                }
            }
            EditorGUILayout.EndVertical();

            GUILayout.Space(3);

            if (IsContextClick(Event.current, rect))
            {
                var menu = new GenericMenu();
                menu.AddItem(new GUIContent("Delete"), false, () => {
                    UndoHelper.BuilderDataUndo("Delete DirectoryLabel Setting");
                    LabelSetting.Remove(setting);
                });
                menu.ShowAsContext();
            }
        }
コード例 #4
0
        internal static void Initialize(Rect win)
        {
            HorizontalStateMain = new SplitterState(new float[] { win.width * 0.3f, win.width * 0.7f },
                                                    new int[] { 300, 300 }, new int[] { 400, 1000 });
            HorizontalStateSub = new SplitterState(new float[] { win.width * 0.20f, win.width * 0.80f },
                                                   new int[] { 250, 250 }, new int[] { 500, 1000 });

            Data = FileHelper.LoadAssetBundleConfigs();
        }
コード例 #5
0
        public string GetAssetLabel(EditorAssetInfo asset, string buildRootPath)
        {
            var buildPath = FileHelper.AssetPathToBuildPath(buildRootPath, asset.AssetPath);

            if (string.IsNullOrEmpty(buildPath))
            {
                return(null);
            }

            return(AssetLabelConfig.GetAssetLabel(asset.AssetPath, asset.Extension, buildPath, asset.Guid));
        }
コード例 #6
0
        public bool CheckFileAvailable(EditorAssetInfo asset, string buildRootPath)
        {
            var buildPath = FileHelper.AssetPathToBuildPath(buildRootPath, asset.AssetPath);

            if (string.IsNullOrEmpty(buildPath))
            {
                return(false);
            }

            return(AssetLabelConfig.CheckFileAvailable(asset.AssetPath, asset.Name, asset.Extension, buildPath));
        }
コード例 #7
0
        public bool CheckDirectoryLabel(EditorAssetInfo asset, string buildRootPath)
        {
            var buildPath = FileHelper.AssetPathToBuildPath(buildRootPath, asset.AssetPath);

            if (string.IsNullOrEmpty(buildPath))
            {
                return(false);
            }

            return(AssetLabelConfig.CheckDirectoryLabel(asset.AssetPath, buildPath));
        }
コード例 #8
0
        private static DirectoryInfo getAssetBundleDirectoryInfo(string assetPath)
        {
            idCounter = 0;
            var path = FileHelper.AssetPathToSystemPath(assetPath);

            if (!Directory.Exists(path))
            {
                Debug.LogError("not found: " + path);
                return(null);
            }

            return(new DirectoryInfo(path));
        }
コード例 #9
0
 public string GetAssetBundleListSavePath(string fileName)
 {
     return(FileHelper.pathSlashFix(Path.Combine(AssetBundleListConfig.AssetBundleListTextPath, fileName)));
 }
コード例 #10
0
        internal void Drawer()
        {
            GUILayout.Space(10);

            EditorGUILayout.BeginVertical();
            {
                if (GUILayout.Button(new GUIContent(ScriptName.ToBold(), GUIHelper.Textures.ScriptIcon), GUILayout.Height(20)))
                {
                    FileHelper.OpenInEditor(ScriptName);
                }
            }
            EditorGUILayout.EndVertical();

            GUILayout.Space(5);

            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                GUILayout.Space(3);

                EditorGUILayout.BeginHorizontal();
                {
                    var fold = EditorGUILayout.Foldout(Fold, "Basic Setting");
                    if (fold != Fold)
                    {
                        EditorGUIUtility.keyboardControl = 0;
                        UndoHelper.BuilderDataUndo("Change fold");
                    }
                    Fold = fold;
                    GUILayout.FlexibleSpace();
                    if (GUILayout.Button(IsConfigAvailable ? GUIHelper.Textures.ConfigAvailable : GUIHelper.Textures.ConfigInvalid, GUIStyle.none, new GUILayoutOption[] { GUILayout.Width(20), GUILayout.Height(20) }))
                    {
                        CheckConfig();
                    }
                }
                EditorGUILayout.EndHorizontal();
                EditorGUILayout.BeginHorizontal();
                {
                    GUILayout.Space(17);

                    EditorGUILayout.BeginVertical();
                    {
                        if (Fold)
                        {
                            Undo.IncrementCurrentGroup();
                            UndoHelper.BuilderDataUndo("Change BuildRootPath");
                            using (new GUIHelper.Scope.DropSettingTextAreaInProject(new GUIContent("★Root Path of Build AssetBundle", "This use for naming assetbundles"), ref AssetBundleBuildRootPath)) { };
                            AssetLabelConfig.BuildRootPath = AssetBundleBuildRootPath;

                            GUILayout.Space(3);

                            Undo.IncrementCurrentGroup();
                            UndoHelper.BuilderDataUndo("Change BuildOption");
                            GUILayout.Label(new GUIContent("★AssetBundle Build Options", "AssetBundle BuildOption"));
                            Options = ( BuildAssetBundleOptions )EditorGUILayout.EnumFlagsField(Options);

                            GUILayout.Space(3);

                            Undo.IncrementCurrentGroup();
                            UndoHelper.BuilderDataUndo("Change BuildPlatform");
                            GUILayout.Label(new GUIContent("★Build Platform", "Build AssetBundle for selected platform."));
                            Platform = EditorGUILayout.MaskField(Platform, BuildTargetUtility.GetBuildModulesMenu());
                        }

                        GUILayout.Space(2);
                    }
                    EditorGUILayout.EndVertical();
                }
                EditorGUILayout.EndHorizontal();

                GUILayout.Space(5);
            }
            EditorGUILayout.EndVertical();

            ExportConfig.OnGUI();
            AssetBundleListConfig.OnGUI();
            UploadConfig.OnGUI();

            GUILayout.FlexibleSpace();
        }
コード例 #11
0
        public override void OnGUI(Rect rect)
        {
            GUI.skin.label.richText = true;
            GUILayout.Space(5);

            if (BuilderDataEditorUtility.BuilderDataMenu.Length > 0)
            {
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                {
                    GUILayout.Label(new GUIContent("Create New BuilderData".ToBold(), GUIHelper.Textures.ScriptableObjectIcon), GUILayout.Height(20));

                    Undo.IncrementCurrentGroup();
                    UndoHelper.PopupWindowUndo(editorWindow, "Edit BuilderData name");
                    newBuilderDataName = EditorGUILayout.TextField(newBuilderDataName);

                    var selected = EditorGUILayout.Popup(selectedType, BuilderDataEditorUtility.BuilderDataMenu);
                    if (selectedType != selected)
                    {
                        UndoHelper.PopupWindowUndo(editorWindow, "Change selected script");
                        EditorGUIUtility.keyboardControl = 0;
                        selectedType = selected;
                    }

                    GUILayout.Space(3);

                    if (GUILayout.Button("Create"))
                    {
                        FileHelper.CreateNewAssetBundleBuildConfig(BuilderDataEditorUtility.BuilderDataType[selectedType], BuilderDataEditorUtility.BuilderDataMenu[selectedType], newBuilderDataName);
                        EasyAssetBundleWindow.Initialize();
                        this.editorWindow.Close();
                    }
                }
                EditorGUILayout.EndVertical();
            }
            else
            {
                selectedType = 0;
                EditorGUILayout.HelpBox("There is no BuilderScript.", MessageType.Warning);
            }

            GUILayout.Space(5);

            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                GUILayout.Label(new GUIContent("Create New BuilderScript".ToBold(), GUIHelper.Textures.ScriptIcon), GUILayout.Height(20));

                Undo.IncrementCurrentGroup();
                UndoHelper.PopupWindowUndo(editorWindow, "Edit BuilderScript name");
                newBuilderScriptName = EditorGUILayout.TextField(newBuilderScriptName);

                GUILayout.Space(3);

                if (GUILayout.Button("Create"))
                {
                    FileHelper.CreateNewBuilderScript(newBuilderScriptName);
                    this.editorWindow.Close();
                }
            }
            EditorGUILayout.EndVertical();

            GUI.skin.label.richText = false;
        }