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:面板
当在画布上添加很多控件的时候可以通过面板来进行分类。