我所理解的 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 的 位置、布局模式、大小、背景模式等等

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

三菱FX3U小项目—传输带定分级控制

目录 一、项目描述 二、IO口分配 三、项目程序 四、总结 一、项目描述 两条运输带顺序相连&#xff0c;为了避免运送的物料在1号运输线上堆积&#xff0c;所以启动时&#xff0c;1号运输带开始运行&#xff0c;5S后2号运输带自动启动。停机时顺序与启动刚好相反&#xff0c…

什么是智慧仓储?

“关于智慧仓储&#xff0c;有的说是AGV&#xff0c;有的说是自动化立库&#xff0c;还有的WMS厂家也说自己的系统是智慧仓储&#xff0c;到底什么是智慧仓储&#xff1f;” 先一句话总结一下智慧仓储—— 智慧仓储是指利用先进的信息技术和物联网技术对仓储管理进行优化和智能…

游戏工作中用到的一些第3方软件和作用

记录下平时工作中发现的一些好用的软件: Snipaste:截屏软件 最好用的功能就是可以将截的图留在屏幕上,用来做提醒或者对比. RenderDoc:图形调试器 图形图像开\分析和捕捉时要用到的强大工具,可以捕捉图形帧并分析和调试.涵盖Vulkan,D3D11,D3D12.OpenGL,OpenGL ES以及windows …

postman查询数据库-Xmysql

步骤1&#xff1a;安装node.js 下载地址:Download | Node.js步骤2&#xff1a;安装Xmysql工具&#xff0c;命令行输入 npm install -g xmysql &#xff0c;过程中会自动安装相关依赖&#xff1b;步骤3&#xff1a;连接数据库 xmysql -h ip -u 账号 -p 密码 -d 库名 如下表示连…

期刊会议的选择

目录 找到所有⽬标期刊定具体期刊 找到所有⽬标期刊 定具体期刊

用Python做安全测试攻击实战

在本文中&#xff0c;我们将使用Python进行一次安全测试的实战演练&#xff0c;目标是找出并利用应用程序的安全漏洞。请注意&#xff0c;这个演练仅用于教育和研究目的&#xff0c;切勿将这些技术用于非法活动。 注意&#xff1a;未经授权的攻击是违法的。确保你在拥有明确权…

Redis数据的持久化

Redis的持久化有两种方式&#xff1a; RDB&#xff08;Redis Database&#xff09;和AOF&#xff08;Append Only File&#xff09; 目录 一、RDB 保存方式 2、rdb在redis.conf文件中的配置 二、AOF 1、保存方式 2、aof方式持久化在redis.conf文件中的配置 三、持久化建…

JAXB的XmlElement注解

依赖 如果基于JAX-WS开发&#xff0c;可以在maven工程的pom.xml文件中增加如下依赖&#xff0c;会将依赖的JAXB库也下载下来&#xff1a; <dependency><groupId>jakarta.xml.ws</groupId><artifactId>jakarta.xml.ws-api</artifactId><vers…

Kafka学习笔记(三)

目录 第5章 Kafka监控&#xff08;Kafka Eagle&#xff09;5.2 修改kafka启动命令5.2 上传压缩包5.3 解压到本地5.4 进入刚才解压的目录5.5 将kafka-eagle-web-1.3.7-bin.tar.gz解压至/opt/module5.6 修改名称5.7 给启动文件执行权限5.8 修改配置文件5.9 添加环境变量5.10 启动…

一文带你了解docker技术

什么是Docker Docker是一种虚拟技术&#xff0c;诞生于2013年&#xff0c;是dotCloud公司研发的开源项目&#xff0c;因为docker这个公司后来改名docker inc&#xff0c;docker的目标是实现轻量级的操作系统虚拟化解决方案。通俗点说&#xff0c;我们想在一台机器上运行多个系…

卫士之选:迅软DSE解决方案助力IT企业应对数据泄密威胁!

随着信息技术的迅猛发展&#xff0c;软件IT行业正面临着前所未有的数据安全挑战。病毒传播、内部泄密等安全威胁不断涌现&#xff0c;对企业的重要资产和运营造成了严重威胁。与此同时&#xff0c;国家对数据安全的法律法规日益严格&#xff0c;要求企业采取更加有效的措施来保…

Python大数据之linux学习总结——day09_hive函数

hive函数 函数分类标准[重点] 知识点: 原生分类标准: 内置函数 和 用户定义函数(UDF,UDAF,UDTF)分类标准扩大化: 本来&#xff0c;UDF 、UDAF、UDTF这3个标准是针对用户自定义函数分类的&#xff1b; 但是&#xff0c;现在可以将这个分类标准扩大到hive中所有的函数&#…

基于vue-tianditu实现瓦片数据层添加

效果 瓦片TileJson 包下载 pnpm add vue-tianditu main.ts import VueTianditu from "vue-tianditu"; const app createApp(App); app.use(VueTianditu, { v: "4.0", //目前只支持4.0版本 tk: "0b58ed11713850170e0d643e06be225e", }); 拿到瓦…

Spring3新特性:graalvm打包Springboot+Mybatis

Spring3新特性 graalvm打包SpringbootMybatis 项目源代码 https://github.com/cmdch2017/SpringNative_Graalvm_Mybatis 如何安装与运行 安装graalvm与配置环境 首先安装步骤参考这篇博客 https://blog.csdn.net/weixin_38943666/article/details/129505945 其次如何处理…

Linux下非root用户安装CUDA

目录 前言 参考链接 步骤 一. 首先&#xff0c;需要查看系统版本&#xff1a; 二. 安装包下载。 下载CUDA&#xff1a; cuDNN下载 三. 开始安装CUDA和cuDNN 安装CUDA 修改环境变量 安装 cuDNN 查看是否安装成功&#xff0c;输入nvcc -V 前言 由于一些代码实现&…

02-3解析BeautifulSoup

一、基本简介 BeautifulSoup简称&#xff1a;bs4什么是BeatifulSoup&#xff1f;  BeautifulSoup&#xff0c;和lxml一样&#xff0c;是一个html的解析器&#xff0c;主要功能也是解析和提取数据优缺点&#xff1f;  缺点&#xff1a;效率没有lxml的效率高  优点&#xff1…

Transformers实战——Datasets板块

文章目录 一、基本使用1.加载在线数据集2.加载数据集合集中的某一项任务3.按照数据集划分进行加载4.查看数据集查看一条数据集查看多条数据集查看数据集里面的某个字段查看所有的列查看所有特征 5.数据集划分6.数据选取与过滤7.数据映射8.保存与加载 二、加载本地数据集1.直接加…

MARKDOWN

新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#xff0c;除了标准的Markdown编辑器功能&#xff0c;我们增加了如下几点新功能&#xff0c;帮助你用它写博客&#xff1a; 全新的界面设计 &#xff0c;将会带来全新的写作体验&#xff1b;在创作中心设置你喜爱…

vscode 配置 lua

https://luabinaries.sourceforge.net/ 官网链接 主要分为4个步骤 下载压缩包&#xff0c;然后解压配置系统环境变量配置vscode的插件测试 这里你可以选择用户变量或者系统环境变量都行。 不推荐空格的原因是 再配置插件的时候含空格的路径 会出错&#xff0c;原因是空格会断…

YOLOv5 配置C2模块构造新模型

&#x1f368; 本文为[&#x1f517;365天深度学习训练营学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营 &#x1f356; 原作者&#xff1a;[K同学啊] &#x1f680; 文章来源&#xff1a;[K同学的学习圈子](https://www.yuque.com/mingtian-fkmxf/zxwb4…