5.控件父类

5.控件父类


5.1 知识点

创建自定义控件父类

自定义样式是否启用的开关枚举

定义了一个枚举类型 E_Style_OnOff 用于表示自定义样式是否启用。

public enum E_Style_OnOff
{
    On,
    Off,
}

自定义控件父类

自定义控件父类是一个抽象类,继承自MonoBehaviour

public abstract class CustomGUIControl : MonoBehaviour
{
}

提取控件的共同表现

添加必要的变量

提取了控件的共同表现,包括位置信息、显示内容信息、自定义样式以及自定义样式是否启用的开关。

// 位置信息
public CustomGUIPos guiPos;

// 显示内容信息
public GUIContent content;

// 自定义样式
public GUIStyle style;

// 自定义样式是否启用的开关
public E_Style_OnOff styleOnOrOff = E_Style_OnOff.Off;

根据是否使用style写两个抽象方法

绘制GUI控件的公共方法

提供了一个公共方法 DrawGUI(),在根部的OnGUI()中调用该方法可以绘制GUI控件。

public void DrawGUI()
{
    switch (styleOnOrOff)
    {
        case E_Style_OnOff.On:
            StyleOnDraw();
            break;
        case E_Style_OnOff.Off:
            StyleOffDraw();
            break;
    }
}

/// <summary>
/// 自定义样式开启时的绘制抽象方法
/// </summary>
protected abstract void StyleOnDraw();

/// <summary>
/// 自定义样式关闭时的绘制抽象方法
/// </summary>
protected abstract void StyleOffDraw();

5.2 知识点代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//自定义样式是否启用的开关枚举
public enum E_Style_OnOff
{
    On,
    Off,
}

//自定义控件父类 是抽象类
public abstract class CustomGUIControl : MonoBehaviour
{
    //提取控件的共同表现

    //位置信息
    public CustomGUIPos guiPos;

    //显示内容信息
    public GUIContent content;

    //自定义样式
    public GUIStyle style;

    //自定义样式是否启用的开关
    public E_Style_OnOff styleOnOrOff = E_Style_OnOff.Off;

    //绘制GUI控件的方法 提供给外部 在根部的OnGUI()中调用
    public void DrawGUI()
    {
        switch (styleOnOrOff)
        {
            case E_Style_OnOff.On:
                StyleOnDraw();
                break;
            case E_Style_OnOff.Off:
                StyleOffDraw();
                break;
        }
    }

    /// <summary>
    /// 自定义样式开启时的绘制抽象方法
    /// </summary>
    protected abstract void StyleOnDraw();


    /// <summary>
    /// 自定义样式关闭时的绘制抽象方法
    /// </summary>
    protected abstract void StyleOffDraw();
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏