Unity UGUI系统

1:Canvas

Canvas画布是UI的基础,画布就相当于整个屏幕,在canvas中添加东西都相当于在屏幕上添加东西。当添加画布的时候会创建一个EventSystem,事件系统是用来处理之后在画布上添加的各种空间的事件,比如点击事件滑动事件。

Canvas挂载的组件:

Canvas Scaler控制画布缩放

在进行UI开发的时候,要把Since上面的视图选择为2D,画布的白线刚好对应game的视野,白线范围内进行ui的设计。canvs可以有多个,多个画布内容叠加显示在Game。

2:Text控件

RichText类似于html中的一些字符来对某些字符样式进行更改

eg:

<b>学院</b>此时学院字体加粗

3:图片控件

首先导入图片,因为图片作为UI来使用所以设置Texture Type为Sprite(2D and UI)

此时再添加UI image,在image组件中添加Source Image,并可设置color,Raycast Target表示是否接收鼠标事件,以及通过射线检测碰到哪些UI的时候,如果勾选了RayCast Target就会检测到UI

4:Button控件

可在代码里监听什么时候这个按钮被点击

在Button组件上Transition表示变换

interactable:交互的

有时候按钮不可被点击,但是按钮可存在,当完成某个条件的时候可以被点击

先取消interactable此时处于禁用状态,则无法触发点击的事件

on click可设置当button被点击的时候会触发什么事件

Button的点击事件:

将代码挂载在指定物体上,Runtime Only选择指定物体,选在物体上挂载的代码选择上面的函数方法,Onclick可以指定多个方法,当被点击的时候会触发多个指定方法

Editor And Runtime是在编辑模式下,Runtime Only只有在运行模式下触发,off就是关闭

5:Anchor锚点

(调整控件不随屏幕的尺寸发生变化而移动)

锚点相当于UI控件的原点,UI是2D界面,是二维坐标,需要在二维坐标系上设置位置的时候需要有原点,      才能知道是在什么位置,锚点就是原点。

pivot:中心点,对于任何一个UI控件,要确定位置,首先确定锚点,中心,再确定坐标就知道位置。

控件默认锚点是整个屏幕的中心即中心点,当屏幕宽度跟高度发生变化的时候,Button一之处在于整个屏幕的中心,因为button的位置的计算就是以屏幕的正中心为锚点为原点的。

当将button移到一侧的时候,当屏幕宽度发生变化的时候 ,会遮挡住button是因为button x坐标距离中心点的距离是不会发生变化的,当屏幕宽度减少的时候,button就会跑到外面。     

这就是屏幕中心的锚点。

通过这个更改屏幕中心锚点的位置。

当调整锚点的位置为右上角的时候,button与右上角的距离不变,即使调整屏幕的宽高。

可以修改各个button的锚点位置,右上角的button以右上角为锚点,左上角的button以左上角为锚点。

因为原点是用来计算坐标的,坐标是会保持不变的,所以button的位置相对原点是保持不变的。

有了原点就可以计算控件坐标

pivot:

是控件的中心点,中心点就是计算这个控件坐标的点。默认中心点是位于整个控件的中心点

锚点的四个边会控制控件的四个边

控件的四条边与锚点的四条边的相对位置是保持不变的,当屏幕发生变化的时候,控件是会挤压。

这个特点可以用来设置UI的自适应,某些UI可以让它在不同的屏幕上显示出不同的大小。

案例——制作登录页面

首先是添加image填充背景图,背景图不一定会填充满屏幕当改变屏幕宽度的时候。因为图片的大小是固定的,但是屏幕可能会发生分辨率的变化。

设置anchor的锚点分别为屏幕的四个角,这样才能保证当屏幕尺寸发生变化的时候背景图片可以自适应变化。快捷键,点击alt选择右下角的绿色框。此时当屏幕宽度发生变化的时候背景图会相应的拉伸或缩小。

实现登录功能:

首先监听登录的点击事件,当登录后要取得用户名跟密码这两个内容

实现登陆点击时候,获取到输入控件输入的内容

在Inputfiled中有个text属性,相当于默认值,默认值不是提示信息,当输入内容时也会相应的修改text属性内容,因此可以通过text获得输入内容,因此可以通过获取inputfiled组件上的text属性,text属性保存的就是输入的内容。

场景跳转语句:

Using UnityEngine.SceneManagement;

SceneManager.Load("场景名称");

然后需要把场景添加到building settings里才能进行跳转

错误信息提示:

添加一个text

默认状态禁用整个游戏物体或者text组件

然后要让text显示出来,isactive智能获取是否激活,不能设置其值。

使用

messageText.enabled = true;

激活text组件

使用携程设置字的自动消失

使用动画让text慢慢隐藏,在color里面设置rgb值

6:Toggle控件

toggle单选按钮,toggle控件有一个is on属性来判断是否被选择。

自己创建toggle,首先创建一个empty,再添加toggle控件,再gameobject下创建一个image

,添加图片后,将gameobject的target graphic选择为image,此时创建的是background,在添加一个image制作对号。将对号添加给gameobject控件的graphic。

多选按钮是由多个单选按钮组成。

新建一个gameobject然后将两个toggle放置在gameobject下。只是通过游戏物体层面上进行分类。

然后在gameobject上添加toggle group可以将两个toggle设置为一组。

7:Slider控件

一般来控制音量大小以及血量变化

可以通过代码获取slider里面的value属性来获得它的值

image type设置为sliced的时候image边框的四个角不会随着比例进行变化。

上下边框只会左右拉伸,左右边框只会上下拉伸。  

此时当拉伸的时候整个图片会变得特别工整,边框不会模糊。

8:滚动条和下拉列表

scrollbar:进度条

可以左右也可上下,上下的时候进行内容的滑动,滚动条代表当前看到的内容占总的内容的比例。  

dropdown:下拉菜单

panel:面板

当在画布上添加很多控件的时候可以通过面板来进行分类。    

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值