三国卡牌客户端基础资源仓库
yyl
2025-08-25 214fe94eaf7f09741a7857775dfffe8c3b83c75c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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();
    }
}