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

说在前面: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 update
    void Start()
    {
        text.color = Color.red;
        text.fontSize = 3;//返回一个整型值设置现实的字体大小
        text.lineSpacing = 1.6f; //行间距,指定为字体行高的一个因素。值1将产生正常的行间距。
        text.font = new Font("andlso");
    }

    // Update is called once per frame
    void 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--光标的颜色-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值