Skip to content

Commit 907599c

Browse files
committed
feat: add menu to create template object
1 parent b1e2bcc commit 907599c

2 files changed

Lines changed: 74 additions & 0 deletions

File tree

Scripts/Editor/MenuOptions.cs

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
using UnityEditor;
2+
using UnityEngine;
3+
using UnityEngine.UI;
4+
5+
namespace Coffee.UIExtensions.Editors
6+
{
7+
internal class MenuOptions_UIUnmask
8+
{
9+
[MenuItem("GameObject/UI/Unmask/Tutorial Button")]
10+
private static void CreateTutorialButton2(MenuCommand menuCommand)
11+
{
12+
EditorApplication.ExecuteMenuItem("GameObject/UI/Button");
13+
var button = Selection.activeGameObject.GetComponent<Button>();
14+
button.name = "Tutorial Button";
15+
16+
var unmaskedPanel = CreateUnmaskedPanel(AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/UISprite.psd"), Image.Type.Sliced);
17+
var unmask = unmaskedPanel.GetComponentInChildren<Unmask>();
18+
unmask.fitTarget = button.transform as RectTransform;
19+
unmask.fitOnLateUpdate = true;
20+
21+
var screen = unmaskedPanel.transform.Find("Screen").GetComponent<Image>();
22+
screen.gameObject.AddComponent<UnmaskRaycastFilter>().targetUnmask = unmask;
23+
24+
Selection.activeGameObject = button.gameObject;
25+
}
26+
27+
[MenuItem("GameObject/UI/Unmask/Iris Shot")]
28+
private static void CreateTransition(MenuCommand menuCommand)
29+
{
30+
var unmaskedPanel = CreateUnmaskedPanel(AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/Knob.psd"), Image.Type.Simple);
31+
unmaskedPanel.name = "Iris Shot";
32+
Selection.activeGameObject = unmaskedPanel;
33+
}
34+
35+
private static GameObject CreateUnmaskedPanel(Sprite unmaskSprite, Image.Type spriteType)
36+
{
37+
EditorApplication.ExecuteMenuItem("GameObject/UI/Panel");
38+
var mask = Selection.activeGameObject.AddComponent<Mask>();
39+
mask.showMaskGraphic = false;
40+
mask.name = "Unmasked Panel";
41+
mask.GetComponent<Image>().sprite = null;
42+
43+
EditorApplication.ExecuteMenuItem("GameObject/UI/Image");
44+
var unmask = Selection.activeGameObject.AddComponent<Unmask>();
45+
unmask.name = "Unmask";
46+
unmask.transform.SetParent(mask.transform);
47+
unmask.GetComponent<Image>().sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/UISprite.psd");
48+
49+
var image = unmask.GetComponent<Image>();
50+
image.sprite = unmaskSprite;
51+
image.type = spriteType;
52+
53+
EditorApplication.ExecuteMenuItem("GameObject/UI/Panel");
54+
var screen = Selection.activeGameObject.GetComponent<Image>();
55+
screen.name = "Screen";
56+
screen.sprite = null;
57+
screen.color = new Color(0, 0, 0, 0.8f);
58+
screen.transform.SetParent(mask.transform);
59+
60+
return mask.gameObject;
61+
}
62+
}
63+
}

Scripts/Editor/MenuOptions.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)