Esempio n. 1
0
        protected virtual void DrawTool(Ray drawPointRay)
        {
            if (attribute != null)
            {
                toolColor = ToolColorAttribute.GetColor(attribute.toolUseType);
            }
            RaycastHit drawPointHit;

            if (Physics.Raycast(drawPointRay, out drawPointHit, Mathf.Infinity, ~(GetParameter <Ignore>().layer)))
            {
                if ((Event.current.type == EventType.MouseDown || Event.current.type == EventType.MouseDrag) && Event.current.button == 0)
                {
                    if (Event.current.type == EventType.MouseDown)
                    {
                        OnStartPaint(drawPointHit);
                    }
                    Paint(drawPointHit);
                }
                if (Event.current.type == EventType.MouseUp && Event.current.button == 0)
                {
                    OnEndPaint(drawPointHit);
                }
            }
            OnDrawTool?.Invoke(drawPointHit);
        }
Esempio n. 2
0
 void DrawColorSetting(ToolColorAttribute.ToolUseType toolUseType)
 {
     EditorGUILayout.BeginHorizontal();
     {
         if (tools != null)
         {
             for (int i = 0; i < tools.Length; i++)
             {
                 ToolColorAttribute attribute = tools[i].GetCustomAttribute(typeof(ToolColorAttribute)) as ToolColorAttribute;
                 if (attribute != null && toolUseType == attribute.toolUseType)
                 {
                     Texture2D brushIcon = Resources.Load(tools[i].Name) as Texture2D;
                     GUI.contentColor = EditorGUIUtility.isProSkin ? Color.white : Color.black;
                     GUILayout.Label(new GUIContent(brushIcon), GUILayout.Width(20), GUILayout.Height(20));
                     GUI.contentColor = Color.white;
                 }
             }
         }
         else
         {
             var types = Assembly.GetExecutingAssembly().GetTypes();
             tools = (from System.Type type in types where type.IsSubclassOf(typeof(Tool)) select type).ToArray();
         }
     }
     EditorGUILayout.EndHorizontal();
 }
Esempio n. 3
0
        public static void Init(Vector2 pos)
        {
            PrefabshopSettings window = EditorWindow.GetWindow <PrefabshopSettings>();

            window.minSize = new Vector2(320, 420);
            GUIContent titleContent = new GUIContent("Prefabshop Settings");

            window.titleContent = titleContent;
            window.Show();
            Rect windowRect = new Rect(pos, window.position.size);

            window.position = windowRect;

            var types = Assembly.GetExecutingAssembly().GetTypes();

            window.tools = (from System.Type type in types where type.IsSubclassOf(typeof(Tool)) select type).ToArray();

            window.paint  = ToolColorAttribute.GetColor(ToolColorAttribute.ToolUseType.Paint);
            window.remove = ToolColorAttribute.GetColor(ToolColorAttribute.ToolUseType.Remove);
            window.other  = ToolColorAttribute.GetColor(ToolColorAttribute.ToolUseType.Other);
        }
Esempio n. 4
0
 public virtual void SelectTool()
 {
     attribute = this.GetType().GetCustomAttribute(typeof(ToolColorAttribute)) as ToolColorAttribute;
     OnSelectTool?.Invoke();
 }
Esempio n. 5
0
        private void OnGUI()
        {
            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            EditorGUILayout.BeginHorizontal();
            mouseInfo = EditorGUILayout.Foldout(mouseInfo, "Under Mouse Info");
            GUILayout.FlexibleSpace();

            EditorGUI.BeginChangeCheck();
            underMouseInfo = EditorGUILayout.Toggle("", EditorPrefs.GetBool("[Prefabshop] underMouseInfo", underMouseInfo));
            if (EditorGUI.EndChangeCheck())
            {
                EditorPrefs.SetBool("[Prefabshop] underMouseInfo", underMouseInfo);
            }

            EditorGUILayout.EndHorizontal();
            if (EditorGUILayout.BeginFadeGroup(mouseInfo ? 1f : 0f))
            {
                EditorGUI.indentLevel++;
                GUI.enabled = underMouseInfo;

                EditorGUI.BeginChangeCheck();
                nameInfo = EditorGUILayout.Toggle("Name:", nameInfo);
                if (EditorGUI.EndChangeCheck())
                {
                    EditorPrefs.SetBool("[Prefabshop] nameInfo", nameInfo);
                }

                EditorGUI.BeginChangeCheck();
                parentInfo = EditorGUILayout.Toggle("Parent:", parentInfo);
                if (EditorGUI.EndChangeCheck())
                {
                    EditorPrefs.SetBool("[Prefabshop] parentInfo", parentInfo);
                }

                EditorGUI.BeginChangeCheck();
                tagInfo = EditorGUILayout.Toggle("Tag:", tagInfo);
                if (EditorGUI.EndChangeCheck())
                {
                    EditorPrefs.SetBool("[Prefabshop] tagInfo", tagInfo);
                }

                EditorGUI.BeginChangeCheck();
                layerInfo = EditorGUILayout.Toggle("Layer:", layerInfo);
                if (EditorGUI.EndChangeCheck())
                {
                    EditorPrefs.SetBool("[Prefabshop] layerInfo", layerInfo);
                }

                EditorGUI.BeginChangeCheck();
                toolInfo = EditorGUILayout.Toggle("Tool:", toolInfo);
                if (EditorGUI.EndChangeCheck())
                {
                    EditorPrefs.SetBool("[Prefabshop] toolInfo", toolInfo);
                }

                GUI.enabled = true;
                EditorGUI.indentLevel--;
            }
            EditorGUILayout.EndFadeGroup();
            EditorGUILayout.EndVertical();

            EditorGUILayout.BeginVertical(EditorStyles.helpBox);
            {
                GUILayout.Label("Colors");
                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                {
                    EditorGUI.BeginChangeCheck();
                    paint = EditorGUILayout.ColorField("Paint:", paint);
                    DrawColorSetting(ToolColorAttribute.ToolUseType.Paint);
                    if (EditorGUI.EndChangeCheck())
                    {
                        ToolColorAttribute.SaveColor(ToolColorAttribute.ToolUseType.Paint, paint);
                    }
                }
                EditorGUILayout.EndVertical();

                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                {
                    EditorGUI.BeginChangeCheck();
                    remove = EditorGUILayout.ColorField("Remove:", remove);
                    DrawColorSetting(ToolColorAttribute.ToolUseType.Remove);
                    if (EditorGUI.EndChangeCheck())
                    {
                        ToolColorAttribute.SaveColor(ToolColorAttribute.ToolUseType.Remove, remove);
                    }
                }
                EditorGUILayout.EndVertical();

                EditorGUILayout.BeginVertical(EditorStyles.helpBox);
                {
                    EditorGUI.BeginChangeCheck();
                    other = EditorGUILayout.ColorField("Other:", other);
                    DrawColorSetting(ToolColorAttribute.ToolUseType.Other);
                    if (EditorGUI.EndChangeCheck())
                    {
                        ToolColorAttribute.SaveColor(ToolColorAttribute.ToolUseType.Other, other);
                    }
                }
                EditorGUILayout.EndVertical();
            }
            EditorGUILayout.EndVertical();
        }