feat: add menu to create template object
parent
b1e2bccd05
commit
907599c972
|
|
@ -0,0 +1,63 @@
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace Coffee.UIExtensions.Editors
|
||||||
|
{
|
||||||
|
internal class MenuOptions_UIUnmask
|
||||||
|
{
|
||||||
|
[MenuItem("GameObject/UI/Unmask/Tutorial Button")]
|
||||||
|
private static void CreateTutorialButton2(MenuCommand menuCommand)
|
||||||
|
{
|
||||||
|
EditorApplication.ExecuteMenuItem("GameObject/UI/Button");
|
||||||
|
var button = Selection.activeGameObject.GetComponent<Button>();
|
||||||
|
button.name = "Tutorial Button";
|
||||||
|
|
||||||
|
var unmaskedPanel = CreateUnmaskedPanel(AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/UISprite.psd"), Image.Type.Sliced);
|
||||||
|
var unmask = unmaskedPanel.GetComponentInChildren<Unmask>();
|
||||||
|
unmask.fitTarget = button.transform as RectTransform;
|
||||||
|
unmask.fitOnLateUpdate = true;
|
||||||
|
|
||||||
|
var screen = unmaskedPanel.transform.Find("Screen").GetComponent<Image>();
|
||||||
|
screen.gameObject.AddComponent<UnmaskRaycastFilter>().targetUnmask = unmask;
|
||||||
|
|
||||||
|
Selection.activeGameObject = button.gameObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
[MenuItem("GameObject/UI/Unmask/Iris Shot")]
|
||||||
|
private static void CreateTransition(MenuCommand menuCommand)
|
||||||
|
{
|
||||||
|
var unmaskedPanel = CreateUnmaskedPanel(AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/Knob.psd"), Image.Type.Simple);
|
||||||
|
unmaskedPanel.name = "Iris Shot";
|
||||||
|
Selection.activeGameObject = unmaskedPanel;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static GameObject CreateUnmaskedPanel(Sprite unmaskSprite, Image.Type spriteType)
|
||||||
|
{
|
||||||
|
EditorApplication.ExecuteMenuItem("GameObject/UI/Panel");
|
||||||
|
var mask = Selection.activeGameObject.AddComponent<Mask>();
|
||||||
|
mask.showMaskGraphic = false;
|
||||||
|
mask.name = "Unmasked Panel";
|
||||||
|
mask.GetComponent<Image>().sprite = null;
|
||||||
|
|
||||||
|
EditorApplication.ExecuteMenuItem("GameObject/UI/Image");
|
||||||
|
var unmask = Selection.activeGameObject.AddComponent<Unmask>();
|
||||||
|
unmask.name = "Unmask";
|
||||||
|
unmask.transform.SetParent(mask.transform);
|
||||||
|
unmask.GetComponent<Image>().sprite = AssetDatabase.GetBuiltinExtraResource<Sprite>("UI/Skin/UISprite.psd");
|
||||||
|
|
||||||
|
var image = unmask.GetComponent<Image>();
|
||||||
|
image.sprite = unmaskSprite;
|
||||||
|
image.type = spriteType;
|
||||||
|
|
||||||
|
EditorApplication.ExecuteMenuItem("GameObject/UI/Panel");
|
||||||
|
var screen = Selection.activeGameObject.GetComponent<Image>();
|
||||||
|
screen.name = "Screen";
|
||||||
|
screen.sprite = null;
|
||||||
|
screen.color = new Color(0, 0, 0, 0.8f);
|
||||||
|
screen.transform.SetParent(mask.transform);
|
||||||
|
|
||||||
|
return mask.gameObject;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cc59618a242c64b8f8063cd038562232
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Loading…
Reference in New Issue