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