コード例 #1
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
    {
        if (_enabledOptions == null)
        {
            return;
        }

        EditorGUILayout.HelpBox("Удаляет папку и все файлы в ней", MessageType.Info);
        editor.UpdateNodeName(node);

        GUILayout.Space(10f);

        //Show target configuration tab
        editor.DrawPlatformSelector(node);
        using (new EditorGUILayout.VerticalScope(GUI.skin.box))
        {
            var disabledScope = editor.DrawOverrideTargetToggle(node, _enabledOptions.ContainsValueOf(editor.CurrentEditingGroup), (bool enabled) =>
            {
                using (new RecordUndoScope("Remove Target Bundle Options", node, true))
                {
                    if (enabled)
                    {
                        _enabledOptions[editor.CurrentEditingGroup] = _enabledOptions.DefaultValue;
                        _outputDir[editor.CurrentEditingGroup]      = _outputDir.DefaultValue;
                        _outputOption[editor.CurrentEditingGroup]   = _outputOption.DefaultValue;
                    }
                    else
                    {
                        _enabledOptions.Remove(editor.CurrentEditingGroup);
                        _outputDir.Remove(editor.CurrentEditingGroup);
                        _outputOption.Remove(editor.CurrentEditingGroup);
                    }

                    onValueChanged();
                }
            });

            using (disabledScope)
            {
                OutputOption opt       = (OutputOption)_outputOption[editor.CurrentEditingGroup];
                var          newOption = (OutputOption)EditorGUILayout.EnumPopup("Output Option", opt);
                if (newOption != opt)
                {
                    using (new RecordUndoScope("Change Output Option", node, true))
                    {
                        _outputOption[editor.CurrentEditingGroup] = (int)newOption;
                        onValueChanged();
                    }
                }

                using (new EditorGUI.DisabledScope(opt == OutputOption.BuildInCacheDirectory || opt == OutputOption.BuildInBundlesCacheDirectory))
                {
                    var newDirPath = editor.DrawFolderSelector("Output Directory", "Select Output Folder",
                                                               _outputDir[editor.CurrentEditingGroup],
                                                               Application.dataPath + "/../",
                                                               (string folderSelected) =>
                    {
                        var projectPath = Directory.GetParent(Application.dataPath).ToString();

                        if (projectPath == folderSelected)
                        {
                            folderSelected = string.Empty;
                        }
                        else
                        {
                            var index = folderSelected.IndexOf(projectPath);
                            if (index >= 0)
                            {
                                folderSelected = folderSelected.Substring(projectPath.Length + index);
                                if (folderSelected.IndexOf('/') == 0)
                                {
                                    folderSelected = folderSelected.Substring(1);
                                }
                            }
                        }

                        return(folderSelected);
                    }
                                                               );

                    if (newDirPath != _outputDir[editor.CurrentEditingGroup])
                    {
                        using (new RecordUndoScope("Change Output Directory", node, true))
                        {
                            _outputDir[editor.CurrentEditingGroup] = newDirPath;



                            onValueChanged();
                        }
                    }

                    var outputDir = PrepareOutputDirectory(BuildTargetUtility.GroupToTarget(editor.CurrentEditingGroup), node.Data);

                    using (new EditorGUI.DisabledScope(!Directory.Exists(outputDir)))
                    {
                        using (new EditorGUILayout.HorizontalScope())
                        {
                            GUILayout.FlexibleSpace();
#if UNITY_EDITOR_OSX
                            string buttonName = "Reveal in Finder";
#else
                            string buttonName = "Show in Explorer";
#endif
                            if (GUILayout.Button(buttonName))
                            {
                                EditorUtility.RevealInFinder(outputDir);
                            }
                        }
                    }

                    EditorGUILayout.HelpBox("You can use '{Platform}' variable for Output Directory path to include platform name.", MessageType.Info);
                }
            }
        }
    }
コード例 #2
0
 public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
 {
 }
コード例 #3
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
    {
        EditorGUILayout.HelpBox("My Custom Node: Implement your own Inspector.", MessageType.Info);
        editor.UpdateNodeName(node);

        GUILayout.Space(10f);

        //Show target configuration tab
        editor.DrawPlatformSelector(node);
        using (new EditorGUILayout.VerticalScope(GUI.skin.box)) {
            // Draw Platform selector tab.
            var disabledScope = editor.DrawOverrideTargetToggle(node, m_result.ContainsValueOf(editor.CurrentEditingGroup), (bool b) => {
                using (new RecordUndoScope("Remove Target Platform Settings", node, true)) {
                    if (b)
                    {
                        m_result[editor.CurrentEditingGroup] = m_result.DefaultValue;
                    }
                    else
                    {
                        m_result.Remove(editor.CurrentEditingGroup);
                    }
                    onValueChanged();
                }
            });

            // Draw tab contents
            using (disabledScope) {
                var val = m_result[editor.CurrentEditingGroup];

                using (new GUILayout.HorizontalScope())
                {
                    if (GUILayout.Button("Capture reference data"))
                    {
                        using (new RecordUndoScope("My Value Changed", node, true)){
                            val = JsonUtility.ToJson(m_current);
                            m_result[editor.CurrentEditingGroup] = val;
                            onValueChanged();
                        }
                    }
                    if (GUILayout.Button("Clear", GUILayout.Width(50f)))
                    {
                        m_result.Remove(editor.CurrentEditingGroup);
                        val = string.Empty;
                        onValueChanged();
                    }
                }


                GUILayout.Space(10f);
                if (!string.IsNullOrEmpty(val))
                {
                    GUILayout.Label("Reference Data", "BoldLabel");
//					var width = GUILayoutUtility.GetLastRect().width;
//					GUI.skin.label.CalcHeight(new GUIContent(val), 500f);
                    GUILayout.Label(val, GUI.skin.box, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));

                    GUILayout.Space(4f);
                    using (new GUILayout.HorizontalScope())
                    {
                        GUILayout.FlexibleSpace();
                        if (GUILayout.Button("Copy to Clipboard", GUILayout.Width(150f)))
                        {
                            EditorGUIUtility.systemCopyBuffer = val;
                        }
                    }
                }
            }
        }
    }
コード例 #4
0
 /// <summary>
 /// 绘制inspector
 /// </summary>
 /// <param name="node"></param>
 /// <param name="streamManager"></param>
 /// <param name="editor"></param>
 /// <param name="onValueChanged"></param>
 public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
 {
     EditorGUILayout.HelpBox("该节点,用于获取传入路径的所有子节点,默认只接受一个传入!", MessageType.Info);
 }
コード例 #5
0
 public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
 {
     this.PacakgeName = EditorGUILayout.TextField("分包名:", this.PacakgeName);
     node.Name        = "分包名:" + this.PacakgeName;
     //editor.UpdateNodeName(node);
 }
コード例 #6
0
        /// <summary>
        /// 预览结果 编辑器连线数据,但是build模式也会执行
        /// 这里只建议设置BuildingCtx的ab颗粒度
        /// </summary>
        /// <param name="target"></param>
        /// <param name="nodeData"></param>
        /// <param name="incoming"></param>
        /// <param name="connectionsToOutput"></param>
        /// <param name="outputFunc"></param>
        public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
        {
            // this.selfNodeGUI = node;
            //node.Name                 = EditorGUILayout.TextField("Tips:",  node.Name);
            editor.UpdateNodeName(node);
            if (!node.Name.StartsWith("[颗粒度]"))
            {
                node.Name = "[颗粒度]" + node.Name;
            }

            bool isupdateNode = false;

            //包装一层 方便监听改动
            var ret = EditorGUILayout.EnumPopup("设置规则", (FolderAssetBundleRule)this.SetAssetBundleNameRule).GetHashCode();

            if (ret != this.SetAssetBundleNameRule)
            {
                this.SetAssetBundleNameRule = ret;
                isupdateNode = true;
            }


            //根据不同的枚举进行提示
            switch ((FolderAssetBundleRule)this.SetAssetBundleNameRule)
            {
            case FolderAssetBundleRule.用该目录路径设置AB名:
            {
                EditorGUILayout.HelpBox("将该目录下所有文件,打包成一个AB!", MessageType.Info);
            }
            break;

            case FolderAssetBundleRule.用子目录路径设置AB名:
            {
                var label = "将该目录下所有子目录,按子目录分别打包AB! \n 如:A文件夹下有 A/a1,A/a2,A/a3三个文件夹, 则会打包为a1、a2、a3 三个AB包,\n 若存在类似A/1.txt文件, 额外会生成AssetBundle - A,包含1.txt";
                EditorGUILayout.HelpBox(label, MessageType.Info);
            }
            break;
            }

            if (isupdateNode)
            {
                Debug.Log("更新node!");
                //触发
                //BDFrameworkAssetsEnv.UpdateConnectLine(this.selfNodeGUI, this.selfNodeGUI.Data.OutputPoints.FirstOrDefault());
                GraphNodeHelper.UpdateNodeGraph(this.selfNodeGUI);
            }
        }
コード例 #7
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
    {
        if (!InternalEditorUtility.inBatchMode)
        {
            _serverBundlesFolder = editor.DrawFolderSelector("Server bundles folder", "Choose server bundles folder", _serverBundlesFolder, string.Empty, s => s);
            EditorGUILayout.HelpBox("At build machine this folder will be re-setted automatically.", MessageType.Info);
        }

        _manifestFileName = EditorGUILayout.TextField("Manifest file name", _manifestFileName);
        EditorGUILayout.Separator();
        EditorGUILayout.Separator();

        EditorGUILayout.HelpBox(
            "Specify pathes that will be stripped from asset pathes. Each path on new line. Example:\n" +
            "You have an asset \"Assets/Resources/GUI/Dialogs/MyDialog.prefab\"\n" + "You want this asset as \"Dialogs/MyDialog\" in bundle.\n" +
            "The stripped path will be \"Recources/GUI", MessageType.Info);
        _pathesToStrip = EditorGUILayout.TextArea(_pathesToStrip);
        EditorGUILayout.Separator();
        EditorGUILayout.Separator();

        EditorGUILayout.HelpBox("Specify files extentions, that will not include in manifest assets. (separator - \",\")", MessageType.Info);
        _excludeResourcesExtensions = EditorGUILayout.TextArea(_excludeResourcesExtensions);
    }
コード例 #8
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor,
                                        Action onValueChanged)
    {
        editor.UpdateNodeName(node);

        GUILayout.Space(10f);

        editor.DrawPlatformSelector(node);
        using (new EditorGUILayout.VerticalScope(GUI.skin.box))
        {
            var disabledScope = editor.DrawOverrideTargetToggle(node, _enabledOptions.ContainsValueOf(editor.CurrentEditingGroup),
                                                                b =>
            {
                using (new RecordUndoScope("Remove Target Platform Settings", node, true))
                {
                    if (b)
                    {
                        _enabledOptions[editor.CurrentEditingGroup]   = _enabledOptions.DefaultValue;
                        _manifestFileName[editor.CurrentEditingGroup] = _manifestFileName.DefaultValue;
                        _resourcesPathes[editor.CurrentEditingGroup]  = _resourcesPathes.DefaultValue;
                    }
                    else
                    {
                        _enabledOptions.Remove(editor.CurrentEditingGroup);
                        _manifestFileName.Remove(editor.CurrentEditingGroup);
                        _resourcesPathes.Remove(editor.CurrentEditingGroup);
                    }

                    onValueChanged();
                }
            });

            using (disabledScope)
            {
                var newValue = EditorGUILayout.TextField("Output file name", _manifestFileName[editor.CurrentEditingGroup]);

                if (_manifestFileName[editor.CurrentEditingGroup] != newValue)
                {
                    using (new RecordUndoScope("Change Output file name", node, true))
                    {
                        _manifestFileName[editor.CurrentEditingGroup] = newValue;
                        onValueChanged();
                    }
                }

                EditorGUILayout.LabelField(
                    "Specify the folders, you want to cut from\nassets name. Use this if you have\none folder for all resources and want to\nmake assets name alb shorter.\nEach folder from a new line\nExample:\nMyStaffs/Dogs\nMyStaffs2/Cats",
                    GUILayout.Height(120));

                newValue = EditorGUILayout.TextArea(_resourcesPathes[editor.CurrentEditingGroup]);

                if (_resourcesPathes[editor.CurrentEditingGroup] != newValue)
                {
                    using (new RecordUndoScope("Change Resources pathes", node, true))
                    {
                        _resourcesPathes[editor.CurrentEditingGroup] = newValue;
                        onValueChanged();
                    }
                }
            }
        }
    }
コード例 #9
0
 public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
 {
     EditorGUILayout.HelpBox("Just finish work", MessageType.Info);
     editor.UpdateNodeName(node);
 }
コード例 #10
0
ファイル: CopyToNode.cs プロジェクト: krwork/assets-system
 public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
 {
     EditorGUILayout.HelpBox("Local bundles path is:\n" + GetBundlesFolder() + "\nAt build machine this folder will be re-setted automatically.", MessageType.Info);
 }
コード例 #11
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
    {
        EditorGUILayout.HelpBox("Will delete all files, specified by bundles manifest and passed node condition." + Environment.NewLine +
                                " \"OnlyInBatchMode\" means node work only if unity run in batch mode", MessageType.Info);

        editor.UpdateNodeName(node);

        GUILayout.Space(10f);

        //Show target configuration tab
        editor.DrawPlatformSelector(node);
        using (new EditorGUILayout.VerticalScope(GUI.skin.box))
        {
            var disabledScope = editor.DrawOverrideTargetToggle(node, _enabledPerPlatformOptions.ContainsValueOf(editor.CurrentEditingGroup), (bool enabled) =>
            {
                using (new RecordUndoScope("Remove Target Bundle Options", node, true))
                {
                    if (enabled)
                    {
                        _enabledPerPlatformOptions[editor.CurrentEditingGroup] = _enabledPerPlatformOptions.DefaultValue;
                        _workingOption[editor.CurrentEditingGroup]             = _workingOption.DefaultValue;
                        _filterString[editor.CurrentEditingGroup] = _filterString.DefaultValue;
                    }
                    else
                    {
                        _enabledPerPlatformOptions.Remove(editor.CurrentEditingGroup);
                        _workingOption.Remove(editor.CurrentEditingGroup);
                        _filterString.Remove(editor.CurrentEditingGroup);
                    }

                    onValueChanged();
                }
            });

            using (disabledScope)
            {
                WorkOption opt       = (WorkOption)_workingOption[editor.CurrentEditingGroup];
                var        newOption = (WorkOption)EditorGUILayout.EnumPopup("Mode:", opt);
                if (newOption != opt)
                {
                    using (new RecordUndoScope("Change node mode", node, true))
                    {
                        _workingOption[editor.CurrentEditingGroup] = (int)newOption;
                        onValueChanged();
                    }
                }

                if (opt == WorkOption.RemoveByAssetPathContains ||
                    opt == WorkOption.RemoveByAssetPathStarts ||
                    opt == WorkOption.RemoveByAssetNameContains ||
                    opt == WorkOption.RemoveByAssetNameStarts)
                {
                    GUILayout.Space(8f);

                    var curRegexValue = _filterString[editor.CurrentEditingGroup];
                    EditorGUILayout.LabelField("Conditions, separated by new line:");

                    var newRegexValue = EditorGUILayout.TextArea(curRegexValue);

                    if (newRegexValue != curRegexValue)
                    {
                        using (new RecordUndoScope("Change Regex", node, true))
                        {
                            _filterString[editor.CurrentEditingGroup] = newRegexValue;
                            onValueChanged();
                        }
                    }
                }
            }
        }
    }
コード例 #12
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor,
                                        Action onValueChanged)
    {
        editor.UpdateNodeName(node);

        GUILayout.Space(10f);

        editor.DrawPlatformSelector(node);
        using (new EditorGUILayout.VerticalScope(GUI.skin.box))
        {
            var disabledScope = editor.DrawOverrideTargetToggle(node, m_myValue.ContainsValueOf(editor.CurrentEditingGroup),
                                                                b =>
            {
                using (new RecordUndoScope("Remove Target Platform Settings", node, true))
                {
                    if (b)
                    {
                        m_myValue[editor.CurrentEditingGroup] = m_myValue.DefaultValue;
                    }
                    else
                    {
                        m_myValue.Remove(editor.CurrentEditingGroup);
                    }

                    onValueChanged();
                }
            });

            using (disabledScope)
            {
                _copyManifestExternal    = EditorGUILayout.Toggle("Copy manifest to external folder", _copyManifestExternal);
                _manifestDirectoryExport = editor.DrawFolderSelector("Output Directory", "Select Output Folder",
                                                                     _manifestDirectoryExport, Application.dataPath + "/../", folderSelected => folderSelected);
                _manifestFileName = EditorGUILayout.TextField("Output file name", _manifestFileName);
                EditorGUILayout.LabelField(
                    "Specify the folders, you want to cut from\nassets name. Use this if you have\none folder for all resources and want to\nmake assets name alb shorter.\nEach folder from a new line\nExample:\nMyStaffs/Dogs\nMyStaffs2/Cats",
                    GUILayout.Height(120));
                _resourcesPathes = EditorGUILayout.TextArea(_resourcesPathes);
            }
        }
    }
コード例 #13
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
    {
        if (_enabledOptions == null)
        {
            return;
        }

        EditorGUILayout.HelpBox("Сохраняет конфигурацию бандлей в json", MessageType.Info);
        editor.UpdateNodeName(node);

        GUILayout.Space(10f);

        //Show target configuration tab
        editor.DrawPlatformSelector(node);
        using (new EditorGUILayout.VerticalScope(GUI.skin.box))
        {
            var disabledScope = editor.DrawOverrideTargetToggle(node, _enabledOptions.ContainsValueOf(editor.CurrentEditingGroup), (bool enabled) =>
            {
                using (new RecordUndoScope("Remove Target Bundle Options", node, true))
                {
                    if (enabled)
                    {
                        _enabledOptions[editor.CurrentEditingGroup] = _enabledOptions.DefaultValue;
                        _inputDir[editor.CurrentEditingGroup]       = _inputDir.DefaultValue;
                        _inputOption[editor.CurrentEditingGroup]    = _inputOption.DefaultValue;
                        _fileName[editor.CurrentEditingGroup]       = _fileName.DefaultValue;
                    }
                    else
                    {
                        _enabledOptions.Remove(editor.CurrentEditingGroup);
                        _inputDir.Remove(editor.CurrentEditingGroup);
                        _inputOption.Remove(editor.CurrentEditingGroup);
                        _fileName.Remove(editor.CurrentEditingGroup);
                    }

                    onValueChanged();
                }
            });

            using (disabledScope)
            {
                SaveBundlesConfigurationNode.OutputOption opt = (SaveBundlesConfigurationNode.OutputOption)_inputOption[editor.CurrentEditingGroup];
                var newOption = (SaveBundlesConfigurationNode.OutputOption)EditorGUILayout.EnumPopup("Output Option", opt);
                if (newOption != opt)
                {
                    using (new RecordUndoScope("Change Output Option", node, true))
                    {
                        _inputOption[editor.CurrentEditingGroup] = (int)newOption;
                        onValueChanged();
                    }
                }

                using (new EditorGUI.DisabledScope(opt == SaveBundlesConfigurationNode.OutputOption.BuildInCacheDirectory))
                {
                    var newDirPath = editor.DrawFolderSelector("Output Directory", "Select Output Folder",
                                                               _inputDir[editor.CurrentEditingGroup],
                                                               Application.dataPath + "/../",
                                                               (string folderSelected) =>
                    {
                        var projectPath = Directory.GetParent(Application.dataPath).ToString();

                        if (projectPath == folderSelected)
                        {
                            folderSelected = string.Empty;
                        }
                        else
                        {
                            var index = folderSelected.IndexOf(projectPath);
                            if (index >= 0)
                            {
                                folderSelected = folderSelected.Substring(projectPath.Length + index);
                                if (folderSelected.IndexOf('/') == 0)
                                {
                                    folderSelected = folderSelected.Substring(1);
                                }
                            }
                        }

                        return(folderSelected);
                    }
                                                               );
                    if (newDirPath != _inputDir[editor.CurrentEditingGroup])
                    {
                        using (new RecordUndoScope("Change Output Directory", node, true))
                        {
                            _inputDir[editor.CurrentEditingGroup] = newDirPath;
                            onValueChanged();
                        }
                    }

                    var outputDir = PrepareOutputDirectory(BuildTargetUtility.GroupToTarget(editor.CurrentEditingGroup), node.Data, false);

                    if (opt == SaveBundlesConfigurationNode.OutputOption.ErrorIfNoOutputDirectoryFound &&
                        editor.CurrentEditingGroup != BuildTargetGroup.Unknown &&
                        !string.IsNullOrEmpty(_inputDir[editor.CurrentEditingGroup]) &&
                        !Directory.Exists(outputDir))
                    {
                        using (new EditorGUILayout.HorizontalScope())
                        {
                            EditorGUILayout.LabelField(outputDir + " does not exist.");
                            if (GUILayout.Button("Create directory"))
                            {
                                Directory.CreateDirectory(outputDir);
                            }
                        }

                        EditorGUILayout.Space();

                        string parentDir = Path.GetDirectoryName(_inputDir[editor.CurrentEditingGroup]);
                        if (Directory.Exists(parentDir))
                        {
                            EditorGUILayout.LabelField("Available Directories:");
                            string[] dirs = Directory.GetDirectories(parentDir);
                            foreach (string s in dirs)
                            {
                                EditorGUILayout.LabelField(s);
                            }
                        }

                        EditorGUILayout.Space();
                    }

                    using (new EditorGUI.DisabledScope(!Directory.Exists(outputDir)))
                    {
                        using (new EditorGUILayout.HorizontalScope())
                        {
                            GUILayout.FlexibleSpace();
#if UNITY_EDITOR_OSX
                            string buttonName = "Reveal in Finder";
#else
                            string buttonName = "Show in Explorer";
#endif
                            if (GUILayout.Button(buttonName))
                            {
                                EditorUtility.RevealInFinder(outputDir);
                            }
                        }
                    }

                    EditorGUILayout.HelpBox("You can use '{Platform}' variable for Output Directory path to include platform name.", MessageType.Info);
                }

                GUILayout.Space(8f);

                var fileName    = _fileName[editor.CurrentEditingGroup];
                var newFileName = EditorGUILayout.TextField("File Name", fileName);
                if (newFileName != fileName)
                {
                    using (new RecordUndoScope("Change File Name", node, true))
                    {
                        _fileName[editor.CurrentEditingGroup] = newFileName;
                        onValueChanged();
                    }
                }
            }
        }
    }
コード例 #14
0
        public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
        {
            GUILayout.Label("初始化打包框架", EditorGUIHelper.LabelH4);
            this.selfNodeGUI = node;
            bool isDirty = false;

            //渲染数据.
            //包装一层 方便监听改动
            var ret = EditorGUILayout.EnumPopup("窗口模式", (AssetGraphWindowsModeEnum)this.AssetGraphWindowsMode).GetHashCode();

            if (ret != this.AssetGraphWindowsMode)
            {
                this.AssetGraphWindowsMode = ret;
                isDirty = true;
            }

            //根据不同的枚举进行提示
            switch ((AssetGraphWindowsModeEnum)this.AssetGraphWindowsMode)
            {
            case AssetGraphWindowsModeEnum.配置节点模式:
            {
                EditorGUILayout.HelpBox("该模式下,不会加载实际Assets数据,避免卡顿!", MessageType.Info);
            }
            break;

            case AssetGraphWindowsModeEnum.预览节点模式:
            {
                EditorGUILayout.HelpBox("该模式下,所有操作都会预览实际Assets打包情况,比较卡!", MessageType.Info);
            }
            break;
            }

            if (GUILayout.Button("强制刷新资源数据"))
            {
                isDirty = true;
                GenBuildingCtx(true);
            }


            if (isDirty)
            {
                Debug.Log("更新node!");
                //触发
                //BDFrameworkAssetsEnv.UpdateConnectLine(this.selfNodeGUI, this.selfNodeGUI.Data.OutputPoints.FirstOrDefault());
                GraphNodeHelper.UpdateNodeGraph(this.selfNodeGUI);
            }
        }
コード例 #15
0
        public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
        {
            //初始化group list
            if (e_groupList == null)
            {
                e_groupList = new ReorderableList(groupFilterPathDataList, typeof(string), false, false, true, true);
                e_groupList.onReorderCallback   = ReorderFilterEntryList;
                e_groupList.onAddCallback       = AddToFilterEntryList;
                e_groupList.onRemoveCallback    = RemoveFromFilterEntryList;
                e_groupList.drawElementCallback = DrawFilterEntryListElement;
                // e_groupList.onCanRemoveCallback = (list) =>
                // {
                //     if (e_groupList.count <= 2)
                //     {
                //         return false;
                //     }
                //
                //     return true;
                // };
                e_groupList.onChangedCallback = OnChangeList;
                e_groupList.elementHeight     = EditorGUIUtility.singleLineHeight + 8f;
                e_groupList.headerHeight      = 3;
                e_groupList.index             = this.groupFilterPathDataList.Count - 1;
            }

            //添加输出节点
            // if (incommingAssetGroup != null)
            // {
            //     foreach (var ag in incommingAssetGroup.assetGroups)
            //     {
            //         this.AddOutputNode(ag.Key);
            //     }
            // }


            GUILayout.Label("1.路径匹配:建议以\"/\"结尾,不然路径中包含这一段path都会被匹配上.");
            GUILayout.Label("2.分包路径原则上需要包含/Runtime/");
            e_groupList.DoLayoutList();
        }
コード例 #16
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor, Action onValueChanged)
    {
        EditorGUILayout.HelpBox("My Custom Node: Implement your own Inspector.", MessageType.Info);
        editor.UpdateNodeName(node);

        GUILayout.Space(10f);

        //Show target configuration tab
        editor.DrawPlatformSelector(node);
        using (new EditorGUILayout.VerticalScope(GUI.skin.box)) {
            // Draw Platform selector tab.
            var disabledScope = editor.DrawOverrideTargetToggle(node, m_myValue.ContainsValueOf(editor.CurrentEditingGroup), (bool b) => {
                using (new RecordUndoScope("Remove Target Platform Settings", node, true)) {
                    if (b)
                    {
                        m_myValue[editor.CurrentEditingGroup] = m_myValue.DefaultValue;
                    }
                    else
                    {
                        m_myValue.Remove(editor.CurrentEditingGroup);
                    }
                    onValueChanged();
                }
            });

            // Draw tab contents
            using (disabledScope) {
                var val = m_myValue[editor.CurrentEditingGroup];

                var newValue = EditorGUILayout.TextField("My Value:", val);
                if (newValue != val)
                {
                    using (new RecordUndoScope("My Value Changed", node, true)){
                        m_myValue[editor.CurrentEditingGroup] = newValue;
                        onValueChanged();
                    }
                }
            }
        }
    }
コード例 #17
0
    public override void OnInspectorGUI(NodeGUI node, AssetReferenceStreamManager streamManager, NodeGUIEditor editor,
                                        Action onValueChanged)
    {
        editor.UpdateNodeName(node);

        GUILayout.Space(10f);

        editor.DrawPlatformSelector(node);
        using (new EditorGUILayout.VerticalScope(GUI.skin.box))
        {
            var disabledScope = editor.DrawOverrideTargetToggle(node, m_myValue.ContainsValueOf(editor.CurrentEditingGroup),
                                                                b =>
            {
                using (new RecordUndoScope("Remove Target Platform Settings", node, true))
                {
                    if (b)
                    {
                        m_myValue[editor.CurrentEditingGroup] = m_myValue.DefaultValue;
                    }
                    else
                    {
                        m_myValue.Remove(editor.CurrentEditingGroup);
                    }
                    onValueChanged();
                }
            });

            using ( disabledScope )
            {
                _exportDirectory = editor.DrawFolderSelector("Export Directory", "Select Output Folder", _exportDirectory,
                                                             Application.dataPath + "/../", folderSelected => folderSelected);
                _hgAction = ( HGAction )EditorGUILayout.EnumPopup("HGAction", _hgAction);
            }
        }
    }