void OnGUI()
        {
            if (tex == null)
            {
                tex = AssetDatabase.LoadAssetAtPath <Texture>("Assets/AndreLibrary/Editor/BT_Lighter_Grey_Blue.jpg");
            }

            GUI.DrawTexture(new Rect(0, 0, maxSize.x, maxSize.y), tex, ScaleMode.StretchToFill);
            GUILayout.BeginVertical("HelpBox");
            GUILayout.Space(20);
            var style = new GUIStyle(GUI.skin.label)
            {
                alignment = TextAnchor.MiddleCenter
            };

            GUILayout.Label("New Asset Name", style, GUILayout.ExpandWidth(true));
            assetName = GUILayout.TextField(assetName);
            GUILayout.Space(2.5f);
            if (!string.IsNullOrEmpty(assetName) && !string.IsNullOrWhiteSpace(assetName) &&
                assetName != AssetToUpdate.name)
            {
                if (AssetToUpdate.parent == null)
                {
                    if (!AssetToUpdate.btParent.ContainsName(assetName))
                    {
                        if (GUILayout.Button("Change Name"))
                        {
                            AssetToUpdate.ChangeName(assetName);
                            this.Close();
                        }
                        GUILayout.Space(11.5f);
                    }
                }
                else
                {
                    if (!AssetToUpdate.parent.ContainsName(assetName))
                    {
                        if (GUILayout.Button("Change Name"))
                        {
                            AssetToUpdate.ChangeName(assetName);
                            this.Close();
                        }
                        GUILayout.Space(11.5f);
                    }
                }
            }
            else
            {
                GUILayout.Space(32.5f);
            }
            GUILayout.EndVertical();
        }
        private float SideMenuChangeName(Rect square, Vector2 pos, GUIStyle defaultNodeStyle, float offset)
        {
            // lable
            float   heightOffset = offset + 30;
            Vector2 size         = new Vector2(60, 30);

            pos.x = square.x + (square.width / 2) - 30;
            pos.y = square.y + square.height - (square.height - heightOffset);
            Rect rect = new Rect(pos, size);

            GUI.Label(rect, "Change Node Name", defaultNodeStyle);
            // name texture field
            heightOffset      = heightOffset + 20;
            size              = new Vector2(140, 20);
            pos.x             = square.x + (square.width / 2) - 70;
            pos.y             = square.y + square.height - (square.height - heightOffset);
            rect              = new Rect(pos, size);
            sideMenuAssetName = GUI.TextField(rect, sideMenuAssetName);

            // button
            heightOffset = heightOffset + 25;
            size         = new Vector2(140, 20);
            pos.x        = square.x + (square.width / 2) - 70;
            pos.y        = square.y + square.height - (square.height - heightOffset);
            rect         = new Rect(pos, size);
            if (GUI.Button(rect, "Change Name"))
            {
                if (!string.IsNullOrEmpty(sideMenuAssetName) && !string.IsNullOrWhiteSpace(sideMenuAssetName) &&
                    sideMenuAssetName != SideMenuAssetToUpdate.name)
                {
                    if (SideMenuAssetToUpdate.parent == null)
                    {
                        if (!SideMenuAssetToUpdate.btParent.ContainsName(sideMenuAssetName))
                        {
                            SideMenuAssetToUpdate.ChangeName(sideMenuAssetName);
                            sideMenuAssetName = "";
                        }
                    }
                    else
                    {
                        if (!SideMenuAssetToUpdate.parent.ContainsName(sideMenuAssetName))
                        {
                            SideMenuAssetToUpdate.ChangeName(sideMenuAssetName);
                            sideMenuAssetName = "";
                        }
                    }
                }
            }

            return(heightOffset);
        }
Ejemplo n.º 3
0
        public override void OnInspectorGUI()
        {
            myTarget  = (SO_Node)target;
            assetName = EditorGUILayout.TextField("New asset name: ", assetName);
            if (!string.IsNullOrEmpty(assetName) && !string.IsNullOrWhiteSpace(assetName) &&
                assetName != myTarget.name)
            {
                if (GUILayout.Button("Change Name"))
                {
                    myTarget.ChangeName(assetName);
                }
            }

            GUILayout.Space(20);

            //serializedObject.Update();
            // EditorList.Show(serializedObject.FindProperty("m_nodes"), EditorListOption.ElementLabels | EditorListOption.Buttons);
            //serializedObject.ApplyModifiedProperties();

            DrawDefaultInspector();

            GUILayout.Space(20);

            if (myTarget.SwapableNodes)
            {
                tab = GUILayout.Toolbar(tab, new string[] { "Add", "Swap", "Remove" });
                switch (tab)
                {
                case 0:
                    op = (NODEOPTIONS)EditorGUILayout.EnumPopup("Node to create:", op);
                    if (op != NODEOPTIONS.None)
                    {
                        name = EditorGUILayout.TextField("Node Name: ", name);
                        if (!string.IsNullOrEmpty(name) && !string.IsNullOrWhiteSpace(name) && !myTarget.ContainsName(name))
                        {
                            if (GUILayout.Button("Add Node"))
                            {
                                SO_Node node = GetNodeType(op, name);
                                if (node != null)
                                {
                                    myTarget.AddNode(node);
                                }
                            }
                        }
                    }
                    break;

                case 1:
                    if (!myTarget.NodeAdd)
                    {
                        return;
                    }
                    nodeAName = EditorGUILayout.TextField("Node A Name: ", nodeAName);
                    nodeBName = EditorGUILayout.TextField("Node B Name: ", nodeBName);
                    if ((!string.IsNullOrEmpty(nodeAName) && !string.IsNullOrWhiteSpace(nodeAName) && myTarget.ContainsName(nodeAName)) &&
                        (!string.IsNullOrEmpty(nodeBName) && !string.IsNullOrWhiteSpace(nodeBName) && myTarget.ContainsName(nodeBName)))
                    {
                        if (GUILayout.Button("Swap Nodes"))
                        {
                            myTarget.MoveNodePositions(nodeAName, nodeBName);
                        }
                    }
                    break;

                case 2:
                    name = EditorGUILayout.TextField("Node Name: ", name);
                    if (!string.IsNullOrEmpty(name) && !string.IsNullOrWhiteSpace(name) && myTarget.ContainsName(name))
                    {
                        if (GUILayout.Button("Remove Nodes"))
                        {
                            myTarget.RemoveNode(name);
                            //AssetDatabase.Refresh();
                            // AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(myTarget), ImportAssetOptions.ForceUpdate);
                        }
                    }
                    break;

                default:
                    break;
                }
            }
            else
            {
                if (!myTarget.NodeAdd)
                {
                    return;
                }

                tab = GUILayout.Toolbar(tab, new string[] { "Add", "Remove" });
                switch (tab)
                {
                case 0:
                    op = (NODEOPTIONS)EditorGUILayout.EnumPopup("Node to create:", op);
                    if (op != NODEOPTIONS.None)
                    {
                        name = EditorGUILayout.TextField("Node Name: ", name);
                        if (!string.IsNullOrEmpty(name) && !string.IsNullOrWhiteSpace(name) && !myTarget.ContainsName(name))
                        {
                            if (GUILayout.Button("Add Node"))
                            {
                                SO_Node node = GetNodeType(op, name);
                                if (node != null)
                                {
                                    myTarget.AddNode(node);
                                }
                            }
                        }
                    }
                    break;

                case 1:
                    name = EditorGUILayout.TextField("Node Name: ", name);
                    if (!string.IsNullOrEmpty(name) && !string.IsNullOrWhiteSpace(name) && myTarget.ContainsName(name))
                    {
                        if (GUILayout.Button("Remove Nodes"))
                        {
                            myTarget.RemoveNode(name);
                            AssetDatabase.Refresh();
                            AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(myTarget), ImportAssetOptions.ForceUpdate);
                        }
                    }
                    break;

                default:
                    break;
                }
            }
        }