Unity3D--UGUI(一)

什么是游戏的GUI?

  • 游戏的开始菜单
  • RPG游戏的菜单栏,侧边栏和功能栏 比如背包系统,任务列表
  • 设计用来控制移动的虚拟杆和攻击的攻击按钮
UI的一些组件

Unity3D--UGUI(一)_第1张图片

  • Text 文本组件
  • Image 图片
  • Raw Image 可以拖放一个材质
  • Button 按钮
  • Toggle 开关
  • Slider 滑动器 可以调节声音大小
  • Scrollbar 滚动条
  • Input Field 输入框
  • Canvas 画布(敲重点了,所有的UI组件位于Canvas之下)
  • Panel 面板

EventSystem事件处理系统
Unity3D--UGUI(一)_第2张图片

案例一:游戏简介页面

案例演示:

1.首先创建一个Image当作背景,将Image调成半透明Unity3D--UGUI(一)_第3张图片

2.创建另一个Image放在第一个的上面,作为标题的背景;创建两个Text,一个为标题,另一个为文本内容
Unity3D--UGUI(一)_第4张图片

3.创建第三个Image放在文本下

4.在Image上添加一个Scroll Rect组件,使其可以进行滑动
将文本框拉长使其可以显示全部文本
Unity3D--UGUI(一)_第5张图片

注:

  • 要将Text赋值给Content属性
  • Horizontal 水平滑动
    Vertical 垂直滑动

5.添加个Mask组件可以隐藏多余的文本
可以根据需要勾选Show Mark Graphic属性

6.添加一个滚动条,使它可以控制文本的滚动


7.创建右边的按钮、开关、滑块
Unity3D--UGUI(一)_第6张图片
8.监听按钮的点击事件
(1)、创建一个空组件,命名GameManager用来检测按钮
(2)、GameManager添加一个脚本组件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour {

	public void OnStartGame(string sceneName)
    {
       // Application.LoadLevel(sceneName);
       //5.1版本之后这个就过时了,所以用下面这个方法
       //记得加头文件
        SceneManager.LoadScene(sceneName);
    }
}

(3)、在Startbutton里的Button组件中,有一个On Click()属性,可以用来监听按钮,添加事件将GameManage传入,然后选择GameManage里的OnStartGame方法,并填上要转换场景的名称
切换场景方法一:
Unity3D--UGUI(一)_第7张图片

切换场景方法二:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class GameManager : MonoBehaviour {

	public void OnStartGame(int index)
    {
       //用整数来进行索引
        SceneManager.LoadScene(index);
    }
}

Unity3D--UGUI(一)_第8张图片
场景2的索引值为1
Unity3D--UGUI(一)_第9张图片

9.让场景二中的游戏物体进行旋转

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour {

    //速度为旋转的度数
    public float speed = 90;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
        //Vector3.up自身的y坐标
        transform.Rotate(Vector3.up * Time.deltaTime * speed);
	}
    //可以用Slider进行改变
    public void ChangeSpeed(float speedNew)
    {
        this.speed = speedNew;
    }
}


  • Dynamic float 动态改变值

你可能感兴趣的:(Unity,3D)