1 前言
UI 简介中介绍了 UI 、样式属性、、 , UI 元素中介绍了 Label、、、、Radio 、、 Bar、、 等元素 , UI 样式选择器中介绍了简单选择器、复杂选择器、伪类选择器等样式选择器,本文将介绍 UI中的容器,主要包含 、、、 等 , 官方介绍详见→UXML。
(空容器)
是一个空容器 , 便于组织和管理元素,官方介绍见→UXML。
1)属性介绍
说明:View Data Key、 Mode、、Usage Hints、Tab Index、 都是基类属性,后文若出现这些属性将不再赘述 。
2)获取根 容器
VisualElement rootVisualElement = GetComponent
3)注册事件回调()
.cs
using UnityEngine;using UnityEngine.UIElements;public class RegisterCallbackDemo : MonoBehaviour {private void Awake() {VisualElement rootVisualElement = GetComponent
说明:注册的事件主要有以下几种 , 官方介绍见→Event。
4)添加事件操作器()
.cs
using UnityEngine;using UnityEngine.UIElements;public class ManipulatorDemo : MonoBehaviour {private VisualElement rootVisualElement;private void Awake() {rootVisualElement = GetComponent
【【Unity3D】UI Toolkit容器】3 (滚动容器)
1)属性介绍
是一个滚动容器,官方介绍见→UXML。
2)添加元素
将元素拖拽到上,会自动放在其 unity-- 元素下面,如下 。
也可以通过以下代码添加元素 。
VisualElement rootVisualElement = GetComponent
4 (列表)
是一个列表容器,官方介绍见→UXML。
1)属性介绍
2) 的使用
.cs
文章插图
using UnityEngine;using UnityEngine.UIElements;using System.Collections.Generic;public class ListViewDemo : MonoBehaviour {private VisualElement root; // 根容器private ListView listView; // 列表private string[] itemsTitle = new string[] {"First", "Second", "Third", "Fourth"}; // item的标题private int[] itemsData = http://www.kingceram.com/post/new int[]{0, 1, 2, 3}; // item的数值private void Awake() {root = GetComponent().rootVisualElement;listView = root.Q();listView.fixedItemHeight = 60;listView.itemsSource = itemsData;listView.makeItem += MakeItem;listView.bindItem += BindItem;listView.onSelectionChange += OnSelectionChange;}private VisualElement MakeItem() { // 创建item元素, 这里以Label元素呈现itemLabel label = new Label();label.style.fontSize = 50;label.style.unityTextAlign = TextAnchor.MiddleLeft;return label;}private void BindItem(VisualElement visualElement, int index) { // 绑定itemLabel label = visualElement as Label;label.text = itemsTitle[index];}private void OnSelectionChange(IEnumerable
运行后,点击 ,显示如下 。
打印日志如下 。
5 (分组盒子)
是一个逻辑分组容器,官方介绍见→UXML。
1)属性介绍
2) 的使用
.cs
using UnityEngine;using UnityEngine.UIElements;public class GroupBoxDemo : MonoBehaviour {private VisualElement root; // 根容器private GroupBox groupBox; // 分组盒子private string[] choiceLabel = new string[] {"First", "Second", "Third", "Fourth"}; // choice的标签private void Awake() {root = GetComponent().rootVisualElement;groupBox = root.Q();groupBox.text = "GroupBoxDemo";groupBox.style.fontSize = 50;root.Add(groupBox);for (int i = 0; i < choiceLabel.Length; i++) {AddChoice(i);}}private void AddChoice(int index) { // 添加单选项RadioButton choice = new RadioButton();choice.text = choiceLabel[index];choice.style.fontSize = 50;VisualElement ve = choice.Query().AtIndex(2);ve.style.marginRight = 10;choice.RegisterValueChangedCallback(e => OnValueChanged(index, e));groupBox.Add(choice);}private void OnValueChanged(int index, ChangeEvent e) { // 选项变化回调函数Debug.Log("index=" + index + ", previousValue="http://www.kingceram.com/post/+ e.previousValue +", newValue="http://www.kingceram.com/post/+ e.newValue);}}
运行后,点击 ,显示如下 。
打印日志如下 。
- 关于友情的故事50字 古代关于友情的故事50字
- 苹果11怎么弄小屏窗口聊天 苹果11怎么弄小屏窗口
- 怎么看挂了几档 如何知道自己挂了几档
- 我是杜拉拉的演员角色介绍 我是杜拉拉的演员
- yowa云游戏需要花钱吗 yowa云游戏怎么买游戏
- 肥西县幼儿园招生 合肥肥西县幼儿园入园体检地点在哪
- 子宫内膜增生能自慰吗 子宫内膜增生能自慰吗会怀孕吗
- 刺猬是蛇的克星吗 刺猬吃蛇吗
- 刺猬磨牙吗 刺猬磨牙吗?
- 刺猬感冒了 刺猬感冒什么症状