微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity3D--UGUI一

什么是游戏的GUI?

在这里插入图片描述

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

在这里插入图片描述

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

    在这里插入图片描述


    EventSystem事件处理系统

案例一:游戏简介页面

案例演示:

在这里插入图片描述

1.首先创建一个Image当作背景,将Image调成半透明

在这里插入图片描述

2.创建另一个Image放在第一个的上面,作为标题的背景;创建两个Text,一个标题,另一个为文本内容

在这里插入图片描述

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

在这里插入图片描述


4.在Image上添加一个Scroll Rect组件,使其可以进行滑动
将文本框拉长使其可以显示全部文本

在这里插入图片描述


在这里插入图片描述


注:

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

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

在这里插入图片描述


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

在这里插入图片描述


7.创建右边的按钮、开关、滑块

在这里插入图片描述


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方法,并填上要转换场景的名称
切换场景方法一:

在这里插入图片描述


在这里插入图片描述


切换场景方法二:

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

public class GameManager : MonoBehavIoUr {

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

在这里插入图片描述


场景2的索引值为1

在这里插入图片描述

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 动态改变值

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐