简易虚拟培训系统-UI控件的应用1

目录

前言

UI结构总体介绍

建立初步的系统UI结构

Image控件


前言

  前面的文章介绍了关于Oculus设备与UI控件的关联,从本文开始采用小示例的方式介绍基本的UI控件在系统中的基本作用(仅介绍“基本作用”,详细的API教程可参考官方文档)。应用的背景是工程场景类的虚拟培训系统,系统效果运行如下:

简易普车模拟训练系统演示

    这个简易系统中,用到的UI控件有Image、Text(TextMeshPro)、Button、Slider、Toggle、ScrollBar等,下面会分篇幅讲解它们的使用。

UI结构总体介绍

  制作UI页面,可以先在场景中搭建一个空节点UI,将所有与UI相关的控件节点放置在这个空节点下面,以便于在系统运行过程中加载和管理,如下图是一个比较详细的UI面板(详见UI管理1):

   其中的三个要素:

   Camera:相机。图中的UICamara是仅渲染UI组件的相机,也可以不添加它,而仅仅使用主相机(MainCamera)来渲染。在VR场景中一般使用VR相机,也不需要单独添加UI相机。

   Canvas:画布,一个场景中可以存在多个画布(如上图的Canvas_Main、Canv_Settings等),所有的UI控件需要作为Canvas的子节点才能被渲染。建立多个Canvas的好处还有:可以通过管理这些Canvas来操控某些UI组件的显示、激活等。

  EventStystem:用于接收用户的交互射线,可以是鼠标点击的射线,也可以是VR设备的输入(详见设置VR的UI控件)。

  下面,就以简易培训系统为例,搭建并介绍基本的UI场景和控件:

建立初步的系统UI结构

  1. 建立总的管理节点UI

  2. 在它之下建立Canvas,需要多少个不同的面板就建立多少个Canvas。

  

  建立Canvas的同时,会自动建立一个EventSystem,将它也一并放入UI节点下。

  3. 修改一下各Canvas的名字便于区别:

    

Image控件

  下面先制作主面板mainCanvas:

   1. 加入背景图片:在mainCanvas节点上,点右键选择Image,并修改一下名称以便识别(这里改为bgImage)。加入Image后,默认会将一个图片显示在屏幕中央

  

   2. 使用移动和缩放工具,将图片放到合适的大小和位置。图片外围的白色框线就是Canvas的大小,也代表了界面的大小,我们看到的效果就是图片在屏幕中显示的大小和位置。

   3. 调整图片颜色、透明度:找到bgImage在Inspector面板中的Color属性,可以从中选择合适的颜色、透明度

   

  灰色半透明的结果:

   4. 更改图片:有时仅仅更改颜色满足不了我们对于界面的要求,还可以从其他软件制作背景图片导入Image控件,jpg、gif等常规格式都可以。不过在导入时需要将图片改为Sprite格式,否则无法正常显示(注意:所有导入的图片都需要做此操作)。方法如下:

  (1)将图片放在本工程文件的Assets文件夹内,建议建立一个统一的Image文件夹

   (2)在Unity中的Assets目录下找到这张图片:

 

   (3)点击图片,在它的Inspector面板中,将它的格式改为Sprite,最后点击Apply按钮

 本篇到此结束,Text控件请看下一篇

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

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

相关文章

从0到1学会Git(第一部分):Git的下载和初始化配置

1.Git是什么: 首先我们看一下百度百科的介绍:Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 …

前端调用电脑摄像头

项目中需要前端调用,所以做了如下操作 先看一下效果吧 主要是基于vue3,通过canvas把画面转成base64的形式,然后是把base64转成 file文件,最后调用了一下上传接口 以下是代码 进入页面先调用一下摄像头 navigator.mediaDevices.ge…

NTP时钟同步服务器

目录 一、什么是NTP? 二、计算机时间分类 三、NTP如何工作? 四、NTP时钟同步方式(linux) 五、时间同步实现软件(既是客户端软件也是服务端软件) 六、chrony时钟同步软件介绍 七、/etc/chrony.conf配置文件介…

构建 NodeJS 影院预订微服务并使用 docker 部署(04/4)

一、说明 构建一个微服务的电影网站,需要Docker、NodeJS、MongoDB,这样的案例您见过吗?如果对此有兴趣,您就继续往下看吧。 我们前几章的快速回顾 第一篇文章介绍了微服务架构模式,并讨论了使用微服务的优缺点。第二篇…

RHCE——十二、Mysql服务

Mysql服务 一、什么是数据库1、数据:2、数据库: 二、mysql概述三、版本及下载四、yum仓库安装1、添加yum源2、安装3、后续配置 五、本地RPM包安装1、使用迅雷下载集合包2、上传数据3、安装 六、生产环境中使用通用二进制包安装1、作用2、软件包下载3、使…

结算日-洛谷

结算日 - 洛谷 解释&#xff1a; 1.用sum记录贝西走到某位置的累计的总钱&#xff0c;flag标记是否有欠债还不了的情况&#xff08;1为有&#xff09;&#xff0c;ans记录步数。 2.若sum<0&#xff0c;则欠债无法还&#xff0c;flag标记为1&#xff0c;并记录下此刻的位置…

方面级别情感分析之四元组预测

情感四元组预测现有方法 阅读本文之前我们默认你对情感分析有基本的认识。 如果没有请阅读文章(https://tech.tcl.com/post/646efb5b4ba0e7a6a2da6476) 情感分析四元组预测涉及四个情感元素: 方面术语a&#xff0c;意见术语(也叫观点术语)o&#xff0c; 方面类别ac&#xff0c…

Kotlin入门1. 语法基础

Kotlin入门1. 语法基础 一、简介二、在Idea创建一个示例项目三、基本语法1. 第一个程序2. 基本数据类型(1) 数字(2) 类型转换(3) 数学运算位运算 &#xff08;4&#xff09;可空类型 3. 函数4. 字符串(1) 字符串拼接(2) 字符串查找(3) 字符串替换(4) 字符串分割 5. null 安全的…

C++ 多重继承

所谓多重继承就是一个儿子有好几个爹&#xff0c;然后一个人继承了这几个爹的财产。只需注意构造顺序即可&#xff0c;反正析构的顺序也是一样的。 #include <iostream> #include <string.h> using namespace std;class base_a { public:base_a(const char *str){…

SpringBoot中自定义starter

SpringBoot自动装配原理&#xff1a; EnableAutoConfiguration注解开启自动装配功能&#xff0c;该注解通常放在应用的主类上。spring.factories文件位于META-INF目录下的配置文件中定义各个自动装配类的全限定名 当SpringBoot启动时&#xff0c;会加载classpath下所有的spri…

智能化新十年,“全栈智能”定义行业“Copilot智能助手”

“智能化转型是未来十年中国企业穿越经济周期的利器”&#xff0c;这是联想集团执行副总裁兼中国区总裁刘军在去年联想创新科技大会上做出的判断&#xff0c;而2023年正值第四次工业革命第二个十年的开端&#xff0c;智能化是第四次工业革命的主题。2023年初&#xff0c;基于谷…

通过RD Client远程连接windows电脑踩坑点

通过RD Client远程连接windows电脑操作的个人踩坑点&#xff0c;记录下来&#xff0c;防止下一次还犯。 配置&#xff1a; win10专业版腾讯云服务器Ubuntu22.04小米平板RD client 首先是安装frp 这一部分参考的是&#xff1a;通过RD Client远程连接windows电脑&#xff08;…