unity UGUI基础(一)

版权声明:文章均是博主原创,如需转载,请在文章开头注明出处和署名! https://blog.csdn.net/shirln/article/details/85259643

推荐阅读:

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一定要亲自操作编辑器哦!

猜你喜欢

转载自blog.csdn.net/shirln/article/details/85259643