热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UGUI系统(常用控件)适应场景、使用方法(1)

说在前面:UI元素在Canvas里的绘制顺序和在Hierarchy面板中的排列顺序是一样的,排名在上面的对象首先绘制,然后是第二个第三个&

说在前面:UI元素在Canvas里的绘制顺序和在Hierarchy面板中的排列顺序是一样的,排名在上面的对象首先绘制,然后是第二个第三个,以此类推,如果两个UI原色有重叠的部分,之后绘制的元素会挡在先绘制的元素的上面。

Canvas:UGUI中的一个重要组成部分就是Canvas,它是一个游戏对象,所有的UI都是Canvas的一个子对象,如果场景中不存在Canvas,当用户创建UI元素的时候,系统会自动的创建一个Canvas对象。

Render Modes:(渲染模式),渲染模式共分为三种,一种是Screen Space-overlay,一种是Screen Space-Camera第三种World Space.

Screen Space-overlay :该模式是默认的渲染模式,在该模式下,所有的UI元素都渲染到最上层(类似于手机上的贴膜),如果屏幕的尺寸或者fenbianlv发生改变,Canvas也会自动的和变化后的尺寸相对应。

Screen Space-Camera:在该模式下,Canvas游戏对象放置在一个预先设置好的摄像机的特定距离之外,UI元素通过该摄像机进行渲染,注意:在使用该渲染模式,应该创建一个摄像机并将其指定给Canvas组件下的Rand而Camera,当改变该摄像机的蛇值,UI元素的显示效果也会跟着改变。
World Space:该模式会是游戏对象更加形象,可以手动的改变RectTranform组件,从而更改其大小和控制旋转,在渲染的时候,UI元素会根据他们在3D场景中的位置被渲染在其他游戏物体之前或者之后,使其成为游戏视图的一部分
注意:在Screen的的两种模式下,UI独立于游戏场景,不会被场景中的对象遮盖

RecTranform:Canvas会自带 一个RectTranform,该组件继承与Transform,用于控制Transform信息
参数:

posX、posY、posZ控制UI元素的位置
pivot控制UI元素的中心
Scale控制UI元素的尺寸
Anchors相对于父对象的锚点
Width、Height控制UI的长度和宽度

Panle控件:
它是一个覆盖于整个屏幕的平面,一般可以用来填充UI的背景。注意:Panle控件会自动的适应当前屏幕的尺寸,所以不用担心适应的问题

Button:它是界面的 重要组成元素之一 ,按钮上挂在的Button组件实现了按钮的 全部功能,,包括单击之后的特效,单击事件的监听,
里面的哥哥参数的含义以及定义
参数:

Interactable该按钮是否被启用
Transition该按钮的状态的变换模式
Navigation导航使用键盘防线切换选中按钮时的切换顺序
-Visualize--可视化,使Navigation可视化-

Button组建中的Transition过度选项定义了四种过度模式,分别为None、ColorTint、Sprite Swap、Animation
(1) Color Tint:使用该模式的时候,可以通过Color属性对按钮的四种状态进行设置,在对应的状态下颜色会发生改变,比如按下,抬起等状态
(2)Sprite Swap:该过度模式为精灵配图,如按下按钮时一张图,抬起的时候又是另一张图等
(3)Animation:UGUI的特色,它可以使UGUI系统与动画系统结合起来,使用动画状态机可以对不同状态下的按钮进行位置,大小旋转的图片等参数进行设置
下面来举个例子,我们先要的效果是店家按钮的时候,让按钮缩放
先在界面中创建一个Button,将Button组件中的Tran四通选项选择成Animation 点击下面 Auto Generate Animation 保存
在这里插入图片描述
点击Window-> Animation
在这里插入图片描述
将状态选择成Press
添加RectTransform,然后编辑它的x、y、z的大小
在这里插入图片描述
这样就完成了点击按钮实现缩放的效果。

在Button中,还有一个非常强大的功能就是添加监听,添加监听的功能实现很简单,创建一个c#脚本,在脚本中编辑如下代码

public void onBtClick(){Debug.Log("点击事件");}

然后将脚本添加到Canvas中在Button中点击+将Canvas拖放到相应位置选中要监听的事件
在这里插入图片描述
Text控件:
参数:

Text显示的文本
Font需要选用的字体
Line Spaceing行间距
-RichText--是否为多格式文本-
Material字体材质
FontStyle字体的样式,包括加粗、斜体等
-FontSize--字体大小-
Color字体颜色

下面演示一个简单的部分功能的使用方法

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;public class TextText : MonoBehaviour
{public Text text;// Start is called before the first frame updatevoid Start(){text.color = Color.red;text.fontSize = 3;//返回一个整型值设置现实的字体大小text.lineSpacing = 1.6f; //行间距,指定为字体行高的一个因素。值1将产生正常的行间距。text.font = new Font("andlso");}// Update is called once per framevoid Update(){}
}

Unity支持导入外带的字体包,TTF格式的字体一般都可以使用,使用方法是将下载好的TTF文件放在项目目录下的Asset\Font
目录下(没有的花自己创建),在字体的Font参数中就可以找到导入的字体了

Image:是一个非交互的精灵图片,设置精灵图片的步骤是,选中要设置的图片,将图片的TexTure设置成Sprite(2DandUI)然后点击应用,若想应用到Image上,设置精灵之后拖拽到Source Image上即可
Image的参数:

Source image设置要显示的精灵图片
Color设置图片背景的颜色
Material渲染图片的材质
-Raycast Target--是否将此图像设置成射线投射的目标(是否可以检测到)-
Preserve Aspect是否保持图像现有的尺寸
Set Native使用此按钮会将图像框的尺寸设置成原始像素的大小

RawImage : 它与Image的区别是,前者只能设置精灵图片,而后者可以设置任何纹理

Slider:选择GameObject->UI->Slider创建一个滑块控件
在这里插入图片描述
在滑块控件中:Background是设置滑块的背景,也就是下面的黑色部分
Fill Area的子对象Fill是被填充的样式,也就是下面的白色部分
在这里插入图片描述
Handle Slider Area的子对象是用户可以滑动的那个滑块

Slider的参数:

Transition过度模式其中包含Color Tint、Sprite Swap等模式这在上面已经提到这里不再赘述
Navigation导航,使用键盘方向键切换选中按钮时的顺序,关于导航系统会在下一篇文章中整理
visualize可视化,是Navigation的路线可视化
-Direction--滑块的滑动方向-
Max Value滑块的最大值
value滑块当前的值
-MinValue--滑块的最小值-
Whloe Number设置滑块的值是否只能是整数

Toggle组件:实现开关功能的组件
创建一个Toggle之后,可以看到他的子对象其中BackGround的相关参数与Scrollbar类似。
Checkmark是开关的背景在其中可以设置背景的图片与开关的样式。
Label 是一个Text组件,其中可以设置开关处显示的字和相关的一些设置。
关于将怎样将多个Toggle设置成一个组的实例
首先在Canvas下创建一个空对象,用于管理多个Toggle组件
在Empty GameObject上添加一个Toggle group组件,在Toggle group组件中有一个Allow Switch off组件,选中时,当用户选中了某一个开关可以再次点击取消选择反之则不行
在创建的空物体下创建三个Toggle将三个对象的group设置成EmptyGameObject即可

组件:

IsOn开关的状态
Toggle Transform开关的消音模式,有none和Fade(褪色消隐)两种模式

在这里插入图片描述
在这里插入图片描述
Toggle也同样可以添加事件监听,具体在上篇中有记录

Input Fiedl:这个空间是UGUI中的文本框控件,常用来游戏中给人物取名用,当用户在移动设备中点击这个文本框中,会自动弹出用于输入的键盘,在它的子对象中Placeholder用于显示默认提示信息的文本框,Text则显示用户输入的详细,如果想要修改默认的文本消息的时候,可以直接谢盖Placeholder中的文本消息
参数:

Image Type用户输入时显示的格式
Fill CenterImage的背景颜色是否充满
Character Limit输入文本中的最大数字数
-Content Type--文本的模式有正常、Email address、passed world等状态用来输入正常的文本内容或者电子邮件的地址,密码等如果选择的是密码,当用户输入的时候回自动的将用户输入的文本变成*用来隐藏-
Caret Blink Roat用户输入文本时光标显示的速度
Caret Width光标的宽度
-Custom Caret Color--光标的颜色-

推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
author-avatar
iflbicfb_6114756
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有