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().color = new Color(0, 0, 0, 0.7f); } else { if (ui.screenMask) ui.screenMask.GetComponent().color = new Color32(0, 0, 0, 0); } if (ui.clickEmptySpaceClose) { CreateScreen(ui); ui.screenMask.GetComponent