using UnityEditor;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
[CustomEditor(typeof(UIBase),true),CanEditMultipleObjects]
|
public class UIBaseEditor: Editor
|
{
|
public override void OnInspectorGUI() {
|
UIBase ui = target as UIBase;
|
//增加个按钮 点击生成一个新的遮罩
|
if (GUILayout.Button("生成遮罩"))
|
{
|
CreateScreen(ui);
|
}
|
|
//增加个按钮 点击删除遮罩
|
if (GUILayout.Button("删除遮罩"))
|
{
|
if (ui.screenMask != null)
|
{
|
ui.openMask = false;
|
ui.clickEmptySpaceClose = false;
|
GameObject.DestroyImmediate(ui.screenMask);
|
ui.screenMask = null;
|
}
|
}
|
base.OnInspectorGUI();
|
EditorGUILayout.Space();
|
|
|
//开发过程中其他界面图片raycast默认为false,经常会点到下一个界面
|
if (ui.openMask)
|
{
|
CreateScreen(ui);
|
ui.screenMask.GetComponent<Image>().color = new Color32(0, 0, 0, 226);
|
}
|
else
|
{
|
if (ui.screenMask)
|
ui.screenMask.GetComponent<Image>().color = new Color32(0, 0, 0, 0);
|
}
|
|
if (ui.clickEmptySpaceClose)
|
{
|
CreateScreen(ui);
|
ui.screenMask.GetComponent<Button>().enabled = true;
|
}
|
else
|
{
|
if (ui.screenMask)
|
ui.screenMask.GetComponent<Button>().enabled = false;
|
}
|
|
|
|
}
|
|
void CreateScreen(UIBase ui)
|
{
|
if (ui.screenMask == null)
|
ui.screenMask = GameObject.Instantiate(Resources.Load<GameObject>("Prefabs/ScreenMask"), ui.transform);
|
|
ui.screenMask.transform.localPosition = Vector3.zero;
|
ui.screenMask.transform.localScale = Vector3.one;
|
ui.screenMask.transform.localRotation = Quaternion.identity;
|
ui.screenMask.transform.SetAsFirstSibling();
|
}
|
}
|