推荐阅读:
UGUI的简介:
UGUI系统是从Unity 4.6开始,被集成到Unity的编辑器中Unity官方给这个新的UI系统赋予的标签是:灵活,快速和可视化!,简单来说对于开发者而言就是有三个优点:效率高效果好,易于使用,扩展,以及与Unity的兼容性高。
在不使用任何代码的前提下,就可以简单快速额在游戏中建立其一套UI界面,这在过去是绝对不可想想的,但是新的UI系统确实做到了这一点因为Unity预定义了很多常见的组件,它们以“游戏对象”的形式存在于游戏场景中。
4.6之前的UI代码如下:
void OnGUI()
{
//添加一个图片
GUI.DrawTexture(new Rext(L LeftX,eftY,miniMapWidth,miniMapHwight),backGround);
//做一个按钮,Rect(屏幕的位置,大小),
if(GUI.Button(new Rect(30,100,100,50),"按钮上的文字"))
{
//按钮要执行的语句...
}
}
UGUI与NGUI的区别:
(1)UGUI的Canvas有世界坐标和屏幕坐标
(2)UGUI的Image可以使用material
(3)UGUI通过Mask来剪裁,为NGUI通过Panel的Clip
(4)UNGUI的渲染先后是通过Widget的Depth。而uGUI渲染顺序根据Hierarchy的顺序,越下面渲染在顶层
(5)UGUI不需要绑定Colliders,UI可以自动拦截事件
(6)UGUI的Anchor是相对父对象,没有提供高级选项,
(7)UGUI没有Atlas,使用Sprite
(8)UGUI的事件需要实现事件系统的接口,但写起来也算简单
下面用几个例子来为大家介绍UGUI在游戏中的应用:
例1:UGUI_UI之音量设计
(1)进度条类音效设置:创建Slider组件,设置填充颜色
(2)开关类音效控制
添加Toggle Group组件,实现开关功能,即开和关的互斥点击
按照下面方式修改组件属性;创建脚本,代码控制开与关的状态。
脚本代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class YinXiao : MonoBehaviour {
public GameObject isToggleOn;
public GameObject isToggeOff;
private Toggle toggle;
void Start () {
toggle = GetComponent<Toggle>();
OnValueChanged(toggle.isOn);
}
void Update () {
}
public void OnValueChanged(bool isOn)
{
isToggleOn.SetActive(isOn);
isToggeOff.SetActive(!isOn);
}
}
(3)滑动文本框(菜单)的制作
创建ScrollView组件,设置组件属性如下:
设置滑动方向:
(4)加载场景的方法
首先介绍一种根据场景名字加载场景的方法:
使用Application.LoadLevel(“场景名字”)加载场景,并添加监听事件。
下面介绍另一种根据自定义场景顺序加载场景的方法:
使用Application.LoadLevel(“需加载场景的下标”)加载场景,并添加监听事件。
或者是这样:
上述方法中加载场景的方法相似,区别在于一个传递场景名字的字符串,另一个传递场景的索引。
(5)通过UI界面改变物体的运动状态(如速度大小)
通过上面操作,你已经对UGUI有了初步的了解,如果有什么疑惑欢迎评论区留言。最后告诉你一个小秘密,学习unity一定要亲自操作编辑器哦!