前言

前面一直比较忙,然后到现在才继续接游戏的文章,那么本次将带大家去搭建一个ui框架,同样,需要更具体的教学,可以到b站搜索本人的关于2d游戏开发-unity实现xxx的系列视频.

步骤

其实大致的步骤只有两步,一步是把界面做出来,一部分就是使用代码编写通过按键显示和隐藏,并且能够切换不同的ui界面。


新建空物体,在该空物体下新建面板(这一步主要为了能够更容易查找到物体)

在该空物体鼠标右键,新建面板

在属性窗口换成自己的游戏素材

点击颜色调整不透明度


就可以看到界面的样式为这样

然后在面板下新建一个text,调整位置和编写文本内容

重复上诉动作,建立你需要的属性面板

如我这个

然后将one和two、three、four、five给设置不激活

最后就是代码了
在Canvas挂载自己写的c#脚本

切换ui界面代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class UISystem : MonoBehaviour
{// 获取ui系统private Transform uISystem;// 定义面板值private int Panelvalue = 0;void Start(){uISystem = GetComponent<Transform>();}// Update is called once per framevoid Update(){showUI();}void showUI() {// 左切换if (Input.GetKeyDown(KeyCode.Q)) {switch (Panelvalue) {case 0:uISystem.GetChild(0).gameObject.SetActive(false);uISystem.GetChild(5).gameObject.SetActive(true);Panelvalue = 5;break;case 1:uISystem.GetChild(1).gameObject.SetActive(false);uISystem.GetChild(0).gameObject.SetActive(true);Panelvalue = 0;break;case 2:uISystem.GetChild(2).gameObject.SetActive(false);uISystem.GetChild(1).gameObject.SetActive(true);Panelvalue = 1;break;case 3:uISystem.GetChild(3).gameObject.SetActive(false);uISystem.GetChild(2).gameObject.SetActive(true);Panelvalue = 2;break;case 4:uISystem.GetChild(4).gameObject.SetActive(false);uISystem.GetChild(3).gameObject.SetActive(true);Panelvalue = 3;break;case 5:uISystem.GetChild(5).gameObject.SetActive(false);uISystem.GetChild(4).gameObject.SetActive(true);Panelvalue = 4;break;}}// 右切换if (Input.GetKeyDown(KeyCode.R)) {switch (Panelvalue){case 0:uISystem.GetChild(0).gameObject.SetActive(false);uISystem.GetChild(1).gameObject.SetActive(true);Panelvalue = 1;break;case 1:uISystem.GetChild(1).gameObject.SetActive(false);uISystem.GetChild(2).gameObject.SetActive(true);Panelvalue = 2;break;case 2:uISystem.GetChild(2).gameObject.SetActive(false);uISystem.GetChild(3).gameObject.SetActive(true);Panelvalue = 3;break;case 3:uISystem.GetChild(3).gameObject.SetActive(false);uISystem.GetChild(4).gameObject.SetActive(true);Panelvalue = 4;break;case 4:uISystem.GetChild(4).gameObject.SetActive(false);uISystem.GetChild(5).gameObject.SetActive(true);Panelvalue = 5;break;case 5:uISystem.GetChild(5).gameObject.SetActive(false);uISystem.GetChild(0).gameObject.SetActive(true);Panelvalue = 0;break;}}}
}
显示和隐藏ui界面代码
    // 控制ui系统界面的显示private bool showUiSystem = false;// 获取ui系统预制体private GameObject uiSystemPrefab;// 获取加载后的ui系统private GameObject UISystem;//查找物体并实例化ui系统(根据Tag查找)uiSystemPrefab = Resources.Load<GameObject>("Prefabs/ui/uiSystem");Instantiate(uiSystemPrefab);UISystem = GameObject.FindGameObjectWithTag("mainUI");// 系统的打开和关闭void openAndCloseUIsystem() {if (Input.GetKeyDown(KeyCode.Escape)) {showUiSystem = !showUiSystem;// 打开和关闭系统UISystem.transform.GetChild(0).gameObject.SetActive(showUiSystem);}}

打开和显示ui的代码我是写在玩家的脚本里,然后update调用就可以

这样之后,启动游戏,按ESC键就能显示和隐藏,并且能够切换ui了

结语

以上为我实现ui框架的过程,更具体的搜索我的系列视频

【2d游戏开发】unity实现UI框架搭建相关推荐

  1. unity超级马里奥2d游戏开发-03瓦片地图场景搭建

    大家好,我是小兵,今天给大家带来Untiy开发超级马里奥游戏的第3课,瓦片地图搭建,如果你想查看完整的教程,请访问我的个人博客geekape.net. 前两节课都没涉及具体的游戏制作,算是一个开胃菜, ...

  2. 【2d游戏开发】实现主角的移动,移动动画变换和奔跑加速

    前言 那么这次文章,来编写关于主角的移动和奔跑功能:同样,如前面的文章所述,因编写教程写了很多遍,本文章只写出关键部分:想了解详细的教程,在b站搜索本人录制的2d游戏开发-unity实现系列视频教程 ...

  3. 【2d游戏开发】实现昼夜系统

    前言 本次文章将编写unity如何根据时间实现昼夜系统,也因此,本文章需要依托于前面文章的时间系统功能. 同样,这里只把重要的部分编写出来,具体的实现过程请到b站搜索本人的2d游戏开发-unity实现 ...

  4. unity超级马里奥2d游戏开发课程-01课程介绍

    大家好,我是小兵,今天给大家带来Unity开发超级马里奥2d游戏的第1课,课程介绍,你可以在我的个人博客geekape.net上找到完整的课程. 我之前主要是做前端开发工作的,并不是做游戏开发的,但由 ...

  5. Unity简单2D游戏开发

    Unity简单2D游戏开发 前言: 近日比较无聊,在b站找了一个up主,跟着他的教程来做游戏--开发一个简单的2D游戏 用 Tilemap 绘制场景 新建一个2D项目,在Unity Asset Sto ...

  6. Unity 2D 游戏开发解决方案大全

    Unity 2D 游戏开发解决方案大全 一些官方腔 这篇文章会是一个大纲模式,致力于,为刚入坑的小白,对于一些常见的 Unity 2D 开发问题给出解决方案(啊,尤其是我) 一些方案可能并非最优解,但 ...

  7. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  8. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  9. Unity 2D游戏开发教程之为游戏场景添加多个地面

    Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...

最新文章

  1. 1小时学会:最简单的iOS直播推流(十)librtmp使用介绍
  2. 根据传入url请求,返回json字符串
  3. [转]CSS3 transform顺序问题
  4. HDU 5514 Frogs 欧拉函数
  5. java ee 中文乱码的问题
  6. 页面缓存处理的几种方法
  7. C++ 贪吃蛇小游戏
  8. double小数点后最多几位_基金理财买入后,不断亏损,是最多本金亏光,还是会出现负值...
  9. WinForm------TextEdit只能输入数字
  10. 怎么用vc采集ni卡数据_作家型INFJ的N灵感采集 | INFJ自我成长
  11. go tcp客户端自动重连_阿里面试: HTTP、HTTPS、TCP/IP、三次握手四次挥手过程?(附全网最具深度讲解)
  12. VSCode 个性化配置快捷键
  13. Android 免root 备份数据,真正免root的完美备份详细使用教程
  14. 服务器性能指标图英文翻译,技术性能指标,technic performance guildline,在线英语词典,英文翻译,专业英语...
  15. (万字超详细的复习资料丨没有之一)通信原理考试复习资料,按需收藏加关注。
  16. 欧几里德 与 扩展欧几里得 学习笔记
  17. 苏州计算机云联盟协会,【缤FUN社团】计算机协会
  18. 详解 masm + textpad 编译环境的搭建
  19. 中移动收购米雷康姆在巴基斯坦子公司剩余股份
  20. codewars 一个很神奇的网站

热门文章

  1. 大数据基础(hadoop环境搭建及使用)
  2. oracle实验六杨艳华_工作报告之oracle数据库实验报告
  3. MUI 结合 HTML5+ 实现的二维码扫描功能
  4. 从qemu-virtio到vhost-user
  5. WebVirMgr的搭建过程
  6. 关于新电脑快速安装开发环境
  7. 诚之和:敷尔佳热卖背后销售混乱宣传过度
  8. python实战系列之python变量
  9. gocron mysql_gocron
  10. Android Glide 升级4.8 后, 原方法 animate() 无法使用