Exemplo n.º 1
0
        public static Vector3 DrawVector3(GUIContent label, Vector3 vec, Vector3 defaultValue, Obj objectIAmOn)
        {
            //Horizontal Scope
            ////An Indented way of using Unitys Scopes
            using (new GUILayout.HorizontalScope())
            {
                vec = EditorGUILayout.Vector3Field(label, vec);
                var cachedGuiColor = GUI.color;

                var resetContent = new GUIContent("R", "Resets the vector to  " + defaultValue);
                if (GUILayout.Button(resetContent, GUILayout.Width(25)))
                {
                    Undo.RecordObject(objectIAmOn, "Vector 3 Reset");
                    vec = defaultValue;
                }
                var copyContent = new GUIContent("C", "Copies the vectors data.");
                if (GUILayout.Button(copyContent, GUILayout.Width(25)))
                {
                    CopyPasteUtility.EditorCopy(vec);
                }
                var pasteContent = new GUIContent("P", "Pastes the vectors data.");
                if (GUILayout.Button(pasteContent, GUILayout.Width(25)))
                {
                    Undo.RecordObject(objectIAmOn, "Vector 3 Paste");
                    vec = CopyPasteUtility.Paste <Vector3>();
                }
                GUI.color = cachedGuiColor;
            }
            return(vec);
        }
Exemplo n.º 2
0
        public static Obj CopyPastObjectButtons(Obj obj)
        {
            if (CopyPasteUtility.CanCopy(obj))
            {
                using (new GUILayout.HorizontalScope())
                {
                    var CopyContent = new GUIContent("Copy Data", "Copies the data.");
                    if (GUILayout.Button(CopyContent, EditorStyles.toolbarButton))
                    {
                        CopyPasteUtility.Copy(obj);
                    }
                    var isType = CopyPasteUtility.IsTypeInBuffer(obj);
                    using (new EditorColorChanger(isType? GUI.color : Color.red))
                    {
                        var PasteContent = new GUIContent("Paste Data", "Pastes the data.\n" + CopyPasteUtility.CopyBuffer);

                        if (!isType)
                        {
                            PasteContent.tooltip = "Warning, this will attempt to paste any feilds with the same name.\n" + PasteContent.tooltip;
                        }

                        if (GUILayout.Button(PasteContent, EditorStyles.toolbarButton))
                        {
                            Undo.RecordObject(obj, "Before Paste Settings");
                            CopyPasteUtility.Paste(ref obj);
                        }
                    }
                    return(obj);
                }
            }
            if (CopyPasteUtility.CanEditorCopy(obj))
            {
                using (new GUILayout.HorizontalScope())
                {
                    var CopyContent = new GUIContent("(Editor) Copy Data", "Copies the data.");

                    if (GUILayout.Button(CopyContent, EditorStyles.toolbarButton))
                    {
                        CopyPasteUtility.EditorCopy(obj);
                    }
                    var PasteContent = new GUIContent("(Editor) Paste Data", "Pastes the data.\n" + CopyPasteUtility.CopyBuffer);

                    var isType = CopyPasteUtility.IsTypeInBuffer(obj);
                    using (new EditorColorChanger(isType? GUI.color : Color.red))
                    {
                        if (!isType)
                        {
                            PasteContent.tooltip = "Warning, this will attempt to paste any feilds with the same name.\n" + PasteContent.tooltip;
                        }

                        if (GUILayout.Button(PasteContent, EditorStyles.toolbarButton))
                        {
                            Undo.RecordObject(obj, "Before Paste Settings");
                            CopyPasteUtility.EditorPaste(ref obj);
                        }
                    }
                }
                return(obj);
            }
            return(obj);
        }