引言
Unity平台不断演进,为游戏开发者提供了更强大的工具和工作流。UI Toolkit作为Unity中用于构建用户界面的一套全新解决方案,正逐渐成为开发者在设计游戏UI时的首选。本文将深入探讨UI Toolkit的核心特性、优势以及如何利用它打造专业水准的UI。
UI Toolkit简介
UI Toolkit提供了一系列工具,用于开发游戏和应用程序中的高性能和可扩展的运行时UI,包括Unity编辑器的自定义扩展和运行时调试工具。如果您有开发网页或应用程序的经验,其核心概念和工作流程将会非常熟悉。
新增:QuizU演示项目
QuizU项目是一个基于UI Toolkit的游戏。它是一个以程序员为中心的交互式测验应用程序示例,展示了UI Toolkit组件如何协同工作,利用各种设计模式,在具有多个屏幕和游戏流程管理的小型但功能完备的游戏中。
QuizU演示的组成
演示由两部分组成:
- 10个小型示例:这些示例展示了UI Toolkit的不同方面。
- 迷你测验游戏:将10个场景中的多种技术整合到一个完整的项目中。
设计模式和UI Toolkit的结合
迷你游戏演示了如何使用状态模式进行游戏流程管理、管理多个菜单屏幕、使用模型-视图-呈现者模式、在UI Toolkit中实现事件处理等。游戏玩法是一个简单的测验机制,但其目的是展示和教授您可以在您自己的项目中使用的实现技术。
演示场景
第二部分由10个小型演示场景组成,每个场景代表一个特定的技术或功能。这些可以视为一组食谱,旨在在评估UI Toolkit时激发灵感并提供指导。
演示场景展示的UI Toolkit特性和技巧:
- UXML和视觉树:UXML文件形成UI元素的层次结构。这些视觉树作为用户界面的蓝图。
- Flexbox:灵活的盒子布局模型(Flexbox)为在容器内动态排列UI元素提供了高效的布局模型。
- Unity样式表(USS):USS允许开发者使用预定义的样式自定义UI元素。通过更换样式表即可轻松换肤UI。
- UQuery:UQuery简化了在复杂的UI元素层次结构中搜索的过程,实现了在视觉树中特定UI组件的无缝导航。
- 伪类(Pseudo-classes):伪类可用于通过最少的额外代码创建交互式和动画UI元素,为您的视觉界面增添额外的“活力”。
- UI Toolkit事件系统:UI Toolkit拥有自己的事件系统,旨在处理UI的点击、更改和指针输入,即使是在复杂的层次结构中。
- 操作器(Manipulators):将相关的事件回调封装成单个类,操作器促进了可重用性,并使定义用户交互(例如,库存系统的点击和拖动操作器,捏合缩放效果的手势操作器等)变得更容易。
- 自定义控件(Custom Controls):演示展示了如何通过UxmlFactory和UxmlTraits类定义和实例化自定义VisualElement。然后,这些自定义控件可以通过脚本或UI构建器重复使用。
更新:UI Toolkit Sample – Dragon Crashers(2022 LTS)
《龙之破坏者》(Dragon Crashers)的UI Toolkit示例现已更新,支持Unity 2022 LTS。这个演示是一个完整的界面,展示了如何在您自己的应用程序中利用UI Toolkit。它是电子书《Unity中的用户界面设计和实现》的配套作品,该书于2022年底发布。
更新内容包括:
- 通过主题和UI Toolkit中的GeometryChangedEvent支持运行时横屏和竖屏屏幕模式。
- 实现SafeArea API,以将UI功能包含在设备的可用屏幕区域内。
- 将移动设备的fps限制提高到60fps。
- 重构、简化选择器和USS样式表。
- 更高分辨率的图标。
- 改进了针对不同屏幕比例的固定VFX生成位置和一些光标不一致性。
- 为更清洁的UI架构重构了设计模式。
- 通过Tutorial Inspector窗口提供的新学习内容。
结语
我们希望您能通过《QuizU》和更新的《UI Toolkit Sample – Dragon Crashers》学到许多有用的技巧。