| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- namespace Shapes2D {
- using UnityEngine;
- using UnityEditor;
- using UnityEngine.UI;
- using UnityEngine.EventSystems;
-
- public class MenuItems {
- // thanks to flatuicolors.com
- static Color[] colors = {
- new Color(26 / 255f, 188 / 255f, 156 / 255f),
- new Color(46 / 255f, 204 / 255f, 113 / 255f),
- new Color(52 / 255f, 152 / 255f, 219 / 255f),
- new Color(155 / 255f, 89 / 255f, 182 / 255f),
- new Color(22 / 255f, 160 / 255f, 133 / 255f),
- new Color(39 / 255f, 174 / 255f, 96 / 255f),
- new Color(41 / 255f, 128 / 255f, 185 / 255f),
- new Color(142 / 255f, 68 / 255f, 173 / 255f),
- new Color(241 / 255f, 196 / 255f, 15 / 255f),
- new Color(230 / 255f, 126 / 255f, 34 / 255f),
- new Color(231 / 255f, 76 / 255f, 60 / 255f),
- new Color(149 / 255f, 165 / 255f, 166 / 255f),
- new Color(243 / 255f, 156 / 255f, 18 / 255f),
- new Color(211 / 255f, 84 / 255f, 0 / 255f),
- new Color(192 / 255f, 57 / 255f, 43 / 255f),
- new Color(127 / 255f, 140 / 255f, 141 / 255f)
- };
- public static bool AddToSelected(GameObject go) {
- if (Selection.activeTransform == null) {
- Selection.activeTransform = go.transform;
- return false;
- }
- go.transform.SetParent(Selection.activeTransform);
- go.transform.Translate(Selection.activeTransform.position);
- Selection.activeTransform = go.transform;
- return true;
- }
-
- public static void AddToSelectedNonCanvas(GameObject go) {
- if (Selection.activeGameObject == null) {
- Selection.activeTransform = go.transform;
- return;
- }
- if (Selection.activeGameObject.GetComponentInParent<Canvas>() == null) {
- AddToSelected(go);
- return;
- }
- Selection.activeTransform = go.transform;
- }
- public static bool AddToSelectedCanvas(GameObject go) {
- if (Selection.activeGameObject == null)
- return false;
- if (Selection.activeGameObject.GetComponentInParent<Canvas>() == null)
- return false;
- return AddToSelected(go);
- }
-
- public static GameObject CreatePrefab(string name, bool withUndo = true) {
- GameObject go = GameObject.Instantiate(
- Resources.Load<GameObject>("Shapes2D/Prefabs/" + name));
- go.name = name;
- go.GetComponent<Shape>().settings.fillColor = colors[Random.Range(0, colors.Length)];
- if (withUndo)
- Undo.RegisterCreatedObjectUndo(go, "Create Shapes2D " + name);
- return go;
- }
-
- private static Canvas CreateCanvas() {
- Canvas canvas = new GameObject().AddComponent<Canvas>();
- canvas.gameObject.AddComponent<GraphicRaycaster>();
- canvas.name = "Canvas";
- canvas.gameObject.layer = LayerMask.NameToLayer("UI");
- canvas.renderMode = RenderMode.ScreenSpaceOverlay;
- if (GameObject.FindObjectOfType<EventSystem>() == null) {
- GameObject es = new GameObject();
- es.name = "Event System";
- es.AddComponent<EventSystem>();
- es.AddComponent<StandaloneInputModule>();
- es.transform.SetParent(canvas.transform);
- }
- return canvas;
- }
-
- [MenuItem("GameObject/Shapes2D/Sprites/Arc", false, 10)]
- private static void CreateArc() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Arc"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Curve", false, 10)]
- private static void CreateCurve() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Curve"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Donut", false, 10)]
- private static void CreateDonut() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Donut"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Ellipse", false, 10)]
- private static void CreateEllipse() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Ellipse"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Filled Path", false, 10)]
- private static void CreateFilledPath() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Filled Path"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Line Path", false, 10)]
- private static void CreateLinePath() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Line Path"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Pie", false, 10)]
- private static void CreatePie() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Pie"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Polygon", false, 10)]
- private static void CreatePolygon() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Polygon"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Rectangle", false, 10)]
- private static void CreateRectangle() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Rectangle"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Rounded Rectangle", false, 10)]
- private static void CreateRoundedRectangle() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Rounded Rectangle"));
- }
- [MenuItem("GameObject/Shapes2D/Sprites/Triangle", false, 10)]
- private static void CreateTriangle() {
- MenuItems.AddToSelectedNonCanvas(MenuItems.CreatePrefab("Triangle"));
- }
- [MenuItem("GameObject/Shapes2D/UI/Button", false, 10)]
- private static void CreateButton() {
- GameObject go = MenuItems.CreatePrefab("Button", false);
- go.name = "Shapes2D Button";
- if (MenuItems.AddToSelectedCanvas(go)) {
- Undo.RegisterCreatedObjectUndo(go, "Create Shapes2D Button");
- } else {
- bool createdCanvas = false;
- Canvas canvas = GameObject.FindObjectOfType<Canvas>();
- if (canvas == null || !canvas.enabled || canvas.transform.parent != null) {
- canvas = CreateCanvas();
- createdCanvas = true;
- }
- go.transform.SetParent(canvas.transform);
- Selection.activeTransform = go.transform;
- if (createdCanvas)
- Undo.RegisterCreatedObjectUndo(canvas.gameObject, "Create Shapes2D Button");
- else
- Undo.RegisterCreatedObjectUndo(go, "Create Shapes2D Button");
- }
- go.GetComponent<RectTransform>().anchoredPosition = Vector2.zero;
- go.transform.localScale = new Vector3(1, 1, 1);
- }
- [MenuItem("GameObject/Shapes2D/UI/Panel", false, 10)]
- private static void CreatePanel() {
- GameObject go = MenuItems.CreatePrefab("Panel", false);
- go.name = "Shapes2D Panel";
- if (MenuItems.AddToSelectedCanvas(go)) {
- Undo.RegisterCreatedObjectUndo(go, "Create Shapes2D Panel");
- } else {
- bool createdCanvas = false;
- Canvas canvas = GameObject.FindObjectOfType<Canvas>();
- if (canvas == null || !canvas.enabled || canvas.transform.parent != null) {
- canvas = CreateCanvas();
- createdCanvas = true;
- }
- go.transform.SetParent(canvas.transform);
- Selection.activeTransform = go.transform;
- if (createdCanvas)
- Undo.RegisterCreatedObjectUndo(canvas.gameObject, "Create Shapes2D Panel");
- else
- Undo.RegisterCreatedObjectUndo(go, "Create Shapes2D Panel");
- }
- RectTransform rt = go.GetComponent<RectTransform>();
- rt.offsetMin = new Vector2(0, 0);
- rt.offsetMax = new Vector2(0, 0);
- rt.transform.localScale = new Vector3(1, 1, 1);
- }
- }
- }
|