7.组合控件-工具栏和选择网格
7.1 知识点
工具栏
Toolbar静态方法 创建工具栏
// 创建一个工具栏。
// 需要声明一个 int 变量用于选择 和一个 string 数组用于显示当前选择的工具栏的内容。
// Toolbar静态方法会返回一个 int 值,也需要重新赋值个给选择的 int 变量。
toolbarIndex = GUI.Toolbar(new Rect(0, 0, 200, 30), toolbarIndex, toolbarInfos);
// 工具栏可以帮助我们根据不同的返回索引 来处理不同的逻辑
switch (toolbarIndex)
{
case 0:
// 处理索引为0的逻辑
break;
case 1:
// 处理索引为1的逻辑
break;
case 2:
// 处理索引为2的逻辑
break;
}
效果
选择网格
SelectionGrid静态方法 创建选择网格
// 创建一个按钮网格。
// 也需要声明一个 int 变量用于选择 和一个 string 数组用于显示当前选择的工具栏的内容。
// 相对 toolbar 多了一个参数 xCount 代表 水平方向最多显示的按钮数量 比如有三个按钮 这参数天了填了2 那么一行最多只要两个按钮。
selGridIndex = GUI.SelectionGrid(new Rect(0, 50, 200, 60), selGridIndex, toolbarInfos, 2);
效果
7.2 知识点代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Lesson07_复合控件_工具栏和选择网格 : MonoBehaviour
{
private int toolbarIndex = 0;
private string[] toolbarInfos = new string[] { "强化", "进阶", "幻化" };
private int selGridIndex = 0;
private void OnGUI()
{
#region 知识点一 工具栏
//Toolbar静态方法 创建工具栏
//创建一个工具栏。
//需要声明一个int变量用于选择 和一个string数组用于显示当前选择的工具栏的内容
//Toolbar静态方法会返回一个int值 也需要重新赋值个给选择的int变量
toolbarIndex = GUI.Toolbar(new Rect(0, 0, 200, 30), toolbarIndex, toolbarInfos);
//工具栏可以帮助我们根据不同的返回索引 来处理不同的逻辑
switch (toolbarIndex)
{
case 0:
break;
case 1:
break;
case 2:
break;
}
#endregion
#region 知识点二 选择网格
//SelectionGrid静态方法 创建选择网格
//创建一个按钮网格。
//也需要声明一个int变量用于选择 和一个string数组用于显示当前选择的工具栏的内容
//相对toolbar多了一个参数 xCount 代表 水平方向最多显示的按钮数量 比如有三个按钮 这参数天了填了2 那么一行最多只要两个按钮
selGridIndex = GUI.SelectionGrid(new Rect(0, 50, 200, 60), selGridIndex, toolbarInfos, 2);
#endregion
}
}
7.3 练习题
制作三个页签,选择不同的页签,将在下方显示不同的信息
创建工具栏和选择网格,写切换逻辑
public class TestPanel : MonoBehaviour
{
public Rect toolbarPos;
public Rect selGridPos;
public string[] strs = new string[] { "装备", "进阶", "幻化" };
private int nowSelIndex = 0;
public Rect labelPos;
private void OnGUI()
{
nowSelIndex = GUI.Toolbar(toolbarPos, nowSelIndex, strs);
nowSelIndex = GUI.SelectionGrid(selGridPos, nowSelIndex, strs, 1);
switch (nowSelIndex)
{
case 0:
GUI.Label(labelPos, "装备信息");
break;
case 1:
GUI.Label(labelPos, "进阶信息");
break;
case 2:
GUI.Label(labelPos, "幻化信息");
break;
}
}
}
修改脚本参数,查看效果
7.4 练习题代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
#region Lesson07 练习题一
//制作三个页签,选择不同的页签,将在下方显示不同的信息
public class TestPanel : MonoBehaviour
{
public Rect toolbarPos;
public Rect selGridPos;
public string[] strs = new string[] { "装备", "进阶", "幻化" };
private int nowSelIndex = 0;
public Rect labelPos;
private void OnGUI()
{
nowSelIndex = GUI.Toolbar(toolbarPos, nowSelIndex, strs);
nowSelIndex = GUI.SelectionGrid(selGridPos, nowSelIndex, strs, 1);
switch (nowSelIndex)
{
case 0:
GUI.Label(labelPos, "装备信息");
break;
case 1:
GUI.Label(labelPos, "进阶信息");
break;
case 2:
GUI.Label(labelPos, "幻化信息");
break;
}
}
}
#endregion
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com