GUI学习
1.作为程序员的调试工具,创建游戏内调试工具
2.为脚本组件创建自定义检视面板
3.创建新的编辑器窗口和工具以拓展Unity本身(内置游戏工具)
GUI控件绘制的共同点:都是GUI公共类提供的静态函数 直接调用即可
参数大同小异:
- 位置参数:使用Rect参数,包含xy位置和wh尺寸
- 显示文本:string参数
- 图片信息:Texture参数
- 综合信息:GUIContent参数
- 自定义样式:GUIStyle参数
每一种控件都有多种重载,都是各个参数的排列组合
必备的参数内容 是 位置信息和显示信息
GUI工作原理
在继承MonoBehaviour的脚本中的特殊函数OnGUI()里调用GUI提供的方法
类似生命周期函数 但是专门用于绘制GUI界面绘制
- 执行特点:
- 每帧执行,专门用于绘制GUI界面
- 一般只包含GUI相关界面绘制和操作逻辑
- 在OnDisable之前、LateUpdate之后执行
- 任何继承MonoBehaviour的脚本都可以使用
代码写在下面这个函数当中
1 | private void OnGUI() |
重要参数及文本和按钮
文本控件
可以在外部 声明一个 Rect 然后实时改他的位置和宽和高;
1 | GUI.Label(new Rect(0,0,100,20), "123456"); |
按钮控件
1 | GUI.Button(btnRect, btnContent, btnStyle); |
button是有返回值的 返回值是bool类型
多选框和单选框
多选框
第二个bool值表示 是否选中 如果传true则会一直选中
1 | GUI.Toggle(new rect, true, "效果开关"); |
使用Toggle应该在外部声明 bool
1 | isSel = GUI.Toggle(new Rect(xxxx), isSel, "效果开关"); |
自定义样式
1 | isSel = GUI.Toggle(new Rect(xxxx), isSel, "效果开关", GUIStyle); |
修改图片固定宽高 在style中修改dixedWidth 和 fixedHeight
内容偏移 调整padding属性控制内容起始位置
单选框
使用int类型变量(如nowSelIndex)标识当前选中项
通过条件判断nowSelIndex==n转换为布尔值
1 | private int nowSelIndex = 1;//外部声明 |
面板的显示隐藏
所有地方都能够快速使用
静态方法和静态变量 就可以直接通过类名就用
挂载的物体必须刚开始是激活的
1 |
|
输入框
普通输入
1 | private string inputStr; |
密码输入
1 | private string inputPW; |
拖动条
水平拖动条
1 | private float nowValue; |
竖直拖动条
1 | private float nowValue; |
图片绘制
1 | public Texture tex; |
有预设体封装 可不用了解太多
九宫格概念
屏幕九宫格 控件也有九宫格
九宫格对齐 可达到自适应分辨率的效果
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 zyk的垃圾屋!




