我所理解的 UI Toolkit 启蒙阶段(一)

我所理解的 UI Toolkit 启蒙阶段(一)

对于自己不会的新东西的学习,我认为最合适的路径就是:

实例教学视频 —> 实操熟悉 —> 官方文档查漏补缺 —> 拟定思路实现功能

但这 4 步并非每一步都需要下 100% 的功夫,他们是一个互相补足的过程,也许你在做某一步的时候无法集中,不如换一个步骤进行学习,以此往复。

这是一个 UI Toolkit 新坑 ,想做游戏 UI 至关重要,是逃不掉的课题,甚至我们可以禁靠 UI 来完成一个交互式游戏,对吧。

本系列文章是我在学习过程中的一些总结和理解,在此记录方便回顾查看,并分享出来希望对你有所帮助。

启蒙

我找了一个启蒙视频帮助我快速了解使用 Unity UI Toolkit Beginner’s Guide 讲的不错,感兴趣可以看看,当然,这个视频需要一点小小的帮助(你懂的)。

本文会基于本视频进行介绍,并进行一些讲解

那对于 UI Toolkit 如果你学过 Web ,有过构建 Web 前端应用的经验,上手起来会比较容易,它的很多思路和 H5 几近一致。

在这里插入图片描述

类似于这样的对应关系。

CSS 对应 USS 用于控制样式

HTML 对应 UXML 用于控制布局

JS 对应的是 C# 用于编写互动逻辑 & 实现复杂的动画交互效果

如果你学过 HTML 那这些似乎听起来让人兴奋,这似乎又进入到了我熟悉的领域,嗯我就有这样的感觉

实例中的所有图片可以在 blush design 这里找到

但是如果是我其实并不在意用哪个图片,重要的是效果,快速熟悉之后,你完全可以使用自己的素材来实现你自己想要的交互特效。

首先构建设置你的 UI

在你的 Assets 文件夹下创建一个 UI Document, 一般来说我的分包习惯会给 UI 单独创建一个文件夹,这个就是 UXML 文件,他是后面用于构建组织我们整个界面排版的

在这里插入图片描述

然后在你的场景中创建一个空的 Object ,作为 UI 习惯上我会把他也命名为 UI,并为其添加脚本 UI Document,那据我不完全观察,2020 版本是没有这个系统自带的 UI Document 脚本的,所以如果是新的项目,建议用比较新的版本,但是不建议 2023 或之后的版本(至少本文发布的时候不建议,毕竟 Unity 收费问题搞的真是鬼屎)

在这里插入图片描述

这里可以看到有三个可配置项

  1. Panel Settings
  2. Source Asset
  3. Sort Order

Source Asset 需要关联对应的 UXML 也就是我们刚刚创建的文件。

还有一个必须的文件 Panel Settings

在这里插入图片描述

同样创建一个 Settings 文件,该文件用于定义你的 UI 如何在屏幕上渲染,其中会有很多定制化参数

比如你可能需要调整缩放模式是恒定大小还是随屏幕大小缩放

在这里插入图片描述

将此文件关联到刚刚创建的 UI Document 中就完成了基本的初始化

在这里插入图片描述

回顾一下我们做了什么

创建 UXML 即 UI Document ,在场景中创建空物体来承载 UI 脚本,挂载 UI Document ,关联 UXML 和 Panel Setting。

这个时候我们可以双击 UXML 文件进入 UI Builder 中进行可视化编辑了。

UI Builder 简单 UI 编辑

在这里插入图片描述

你会看到类似这样的一个界面

这里会列出 UI 的根路径,如图就是 Sample.uxml 这个类似于 <html>

Library 中列出了所有可用的组件,我们可以通过这些组件定制 UI , 这里你需要确定一个事情,设置 Theme 为默认的 Runtime Theme

在这里插入图片描述

当你选中根对象时,可以通过 Size 设置画布的大小,可以勾选 Match Game View 选项,这将使你的画布同游戏画面大小保持一致。

当你把 Camera 设置为你游戏中的 Camera 时,你的 UI 视图会展示在游戏视图前面

在这里插入图片描述

Visual Element

Visual Element 是构建 UI 界面的最基本的元素,它类似于 H5 的 <div> 如官网介绍,这些元素排序构成的具有父子关系的结构就是视觉树(官网上来整什么名词视觉树,说这么高大上让人搞不懂其实就是个列表吗)Introduction to visual elements and the visual tree

在这里插入图片描述

在这里插入图片描述

在操作面板,你甚至可以配置 Visual Element 的 位置、布局模式、大小、背景模式等等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/146615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机上安装docker,并安装flink镜像

1. 安装docker 官网步骤&#xff1a;https://docs.docker.com/engine/install/centos/ sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.…

2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-A

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A 一、竞赛时间 总计&#xff1a;360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略设置 A-3 流量完整性保护 A-4 …

【整顿C盘】pycharm、chrome等软件,缓存移动

C盘爆了&#xff0c;特来找一下巨大的软件缓存&#xff0c;特此记录&#xff0c;跟随的各大教程&#xff0c;和自己的体会 一、爆炸家族JetBrains 这个适用于pycharm、idea、webstorm等等&#xff0c;只要是JetBrains家的&#xff0c;2020版本以上&#xff0c;都是一样的方法 p…

Notepad++ 通过HexEditor插件查看.hprof文件、heap dump文件的堆转储数据

文章目录 需求场景插件安装查看notepad的版本&#xff0c;看看是32位的还是64位的下载对应的版本解压导入插件打开notepad插件文件夹&#xff1a;Notepad安装目录新建一个HexEditor文件夹选中插件文件导入 重启notepad使用 需求场景 想要查看app内存的某个域的数据。 利用Andr…

基于蛾群算法优化概率神经网络PNN的分类预测 - 附代码

基于蛾群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于蛾群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于蛾群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

03.webpack中hash,chunkhash和contenthash 的区别

hash、contenthash 和 chunkhash 是通过散列函数处理之后&#xff0c;生成的一串字符&#xff0c;可用于区分文件。 作用&#xff1a;善用文件的哈希值&#xff0c;解决浏览器缓存导致的资源未及时更新的问题 1.文件名不带哈希值 const path require(path) const HtmlWebpac…

SpringBoot 2.x 实战仿B站高性能后端项目

SpringBoot 2.x 实战仿B站高性能后端项目 下栽の地止&#xff1a;请看文章末尾 通常SpringBoot新建项目&#xff0c;默认是集成了Maven&#xff0c;然后所有内容都在一个主模块中。 如果项目架构稍微复杂一点&#xff0c;就需要用到Maven多模块。 本文简单概述一下&#xff0c…

通过maven命令手动上传jar私服Nexus

Nexus3在界面上传组件时报&#xff1a; Ext.JSON.decode(): Youre trying to decode an invalid JSON String: 查找了很多资料&#xff0c;都没有解决。有哪位大佬知道的评论告诉一下&#xff0c;万分感谢。 于是换成maven命令上传&#xff1a; mvn deploy:deploy-file -Dgr…

【C++】类和对象(5)--运算符重载

目录 一 概念 二 运算符重载的实现 三 关于时间的所有运算符重载 四 默认赋值运算符 五 const取地址操作符重载 一 概念 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函数&#xff0c;也具有其返回值类型&#xff0c;函数名字以及参数…

UE5 C++报错:is not currently enabled for Live Coding

解决办法&#xff1a; 再次打开项目&#xff0c;以此法打开&#xff1a;

ToolJet:开源低代码框架,轻松构建复杂可响应界面 | 开源日报 No.78

ToolJet/ToolJet Stars: 25.0k License: AGPL-3.0 ToolJet 是一个开源的低代码框架&#xff0c;可以通过最小化工程投入来构建和部署内部工具。ToolJet 的拖放式前端构建器允许您在几分钟内创建复杂、响应式的前端界面。此外&#xff0c;您还可以集成各种数据源&#xff0c;包…

【Linux网络编程】高级I/O

目录 五种I/O模型 阻塞和非阻塞 非阻塞I/O I/O多路复用之Select、Poll、与Epoll 本文目的是深入浅出理解高级I/O相关的知识&#xff0c;结尾附上代码加深理解相关知识。 五种I/O模型 1.阻塞I/O&#xff1a;在内核将数据准备好之前&#xff0c;系统调用会一直等待。所有的套…

设计模式(5)-使用设计模式实现简易版springIoc

自定义简易版springIoc 1 spring使用回顾 自定义spring框架前&#xff0c;先回顾一下spring框架的使用&#xff0c;从而分析spring的核心&#xff0c;并对核心功能进行模拟。 数据访问层。定义UserDao接口及其子实现类 public interface UserDao {public void add(); }public…

基于静电放电算法优化概率神经网络PNN的分类预测 - 附代码

基于静电放电算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于静电放电算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于静电放电优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

微信个人号api

简要描述&#xff1a; 登录E云平台 请求URL&#xff1a; http://域名地址/member/login域名地址开发者账号密码:后台系统自助开通 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/json 参数&#xff1a; 参数名必选类型说…

​如何使用ArcGIS Pro制作渐变河流效果

对于面要素的河流水系&#xff0c;制作渐变效果方法比较简单&#xff0c;如果是线要素的河流有办法制作渐变效果吗&#xff0c;答案是肯定的&#xff0c;这里为大家介绍一下制作方法&#xff0c;希望能对你有所帮助。 数据来源 本教程所使用的数据是从水经微图中下载的水系数…

《网络协议》07. 其他协议

title: 《网络协议》07. 其他协议 date: 2022-10-07 18:24:02 updated: 2023-11-15 08:00:52 categories: 学习记录&#xff1a;网络协议 excerpt: IPv6、WebSocket、WebService&#xff08;SOAP&#xff0c;WSDL&#xff09;、HTTPDNS、FTP、邮件&#xff08;SMTP&#xff0c;…

基于单片机的温度控制器系统设计

**单片机设计介绍&#xff0c; 基于单片机的温度控制器系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的温度控制器系统是一种利用单片机来检测环境温度并控制温度的系统。它通常由以下几个部分组成&#xff…

Spring 设计模式-简洁版

Java 中包括以下设计模式&#xff1a; 其中Spring 用到的设计模式 1.简单工厂-BeanFactory 2.工厂方法FactoryBean 3.单例模式Bean实例 4.适配器模式SpringMVC中的HandlerAdatper 5.装饰器模式BeanWrapper 6.代理模式_AOP底层 7.观察者模式-spring的事件监听 8.策略横式exclud…

基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码

基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于人工电场算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于人工电场优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…