Unity学习之坦克游戏制作(1)开始场景的制作

文章目录

  • 1. 实现效果
  • 2. 场景装饰
    • 2.1 创建场景
    • 2.2 拖入场景地板
  • 3 开始界面
    • 3.1 导入UI
    • 3.2 创建面板基类
    • 3.2.1 开始按钮
  • 4 设置界面
  • 5 音效数据逻辑
    • 5.1 音效数据可持久化
    • 5.2 声明音效管理的主要变量
    • 5.3 声明数据管理器
    • 5.4 在设置面板的数据初始化
    • 5.5 提供API给外部
  • 6 排行榜界面
    • 6.1 Panel脚本
    • 6.2 更新排行榜数据
    • 6.3 在数据管理类初始化
    • 6.4 更新排行榜列表数据
    • 6.5 提供一个在排行榜中添加数据的方法
  • 7 背景音乐
    • 7.1 在工程新建空物体管理背景音乐
    • 7.2 创建新脚本控制音乐开关
    • 7.3 初始化的时候就设置


1. 实现效果


Unity学习之坦克游戏制作(1)开始场景的制作_第1张图片

2. 场景装饰

2.1 创建场景

Unity学习之坦克游戏制作(1)开始场景的制作_第2张图片

2.2 拖入场景地板

Unity学习之坦克游戏制作(1)开始场景的制作_第3张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第4张图片

相当于开始界面,想怎么创建就怎么创建

Unity学习之坦克游戏制作(1)开始场景的制作_第5张图片
我最终模拟的效果
在这里插入图片描述

3 开始界面

3.1 导入UI

这部分不关键,关键的是创建可用来装载脚本的button
这部分感兴趣的可以去看我博客的GUI部分,但建议大家把学GUI的时间拿来学UGUI
导入预设体
Root
Unity学习之坦克游戏制作(1)开始场景的制作_第6张图片
创建一格Label组件作为标题

Unity学习之坦克游戏制作(1)开始场景的制作_第7张图片
这部分也可以自己创建
同时创建四个按钮,
每个按钮都可以自行设置,
Unity学习之坦克游戏制作(1)开始场景的制作_第8张图片
最终实现的效果

3.2 创建面板基类

使用单例模式
Unity学习之坦克游戏制作(1)开始场景的制作_第9张图片

提供两个方法,给所有子类(面板类)使用
Unity学习之坦克游戏制作(1)开始场景的制作_第10张图片
这个基类的最大作用,就是可以直接传类名给单利模式,而不需要在unity通过名字寻找到脚本的API进行面板的操作
直接.instance就可以进行操作

3.2.1 开始按钮

1)首先创建公共的成员变量 来关联各个组件
Unity学习之坦克游戏制作(1)开始场景的制作_第11张图片

Unity学习之坦克游戏制作(1)开始场景的制作_第12张图片
2) 监听按钮点击后做什么

Unity学习之坦克游戏制作(1)开始场景的制作_第13张图片
先进行测试场景切换有无作用
在build中先把GameScene场景添加上
Unity学习之坦克游戏制作(1)开始场景的制作_第14张图片
此时点击 开始游戏,应该会切换场景

4 设置界面

Unity学习之坦克游戏制作(1)开始场景的制作_第15张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第16张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第17张图片

声明成员变量关联组件
Unity学习之坦克游戏制作(1)开始场景的制作_第18张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第19张图片
因为暂时没有音效文件
所以监听事件先写在这儿,后面再改

Unity学习之坦克游戏制作(1)开始场景的制作_第20张图片
关闭面板
Unity学习之坦克游戏制作(1)开始场景的制作_第21张图片
因为现在一进游戏面板就显示,需要修改逻辑
在start 函数中,所有监听事件下面增加HideMe函数
Unity学习之坦克游戏制作(1)开始场景的制作_第22张图片
此时被隐藏


在beginPanel中添加
Unity学习之坦克游戏制作(1)开始场景的制作_第23张图片
此时点击游戏设置,应该会跳转到这个界面
点击×应该能关闭界面
Unity学习之坦克游戏制作(1)开始场景的制作_第24张图片

因为GUI的不完善,可能会出现 穿透现象,简单处理一下
在打开设置面板的时候,开始面板进行失活
在关闭设置面板时,再对开始面板激活
Unity学习之坦克游戏制作(1)开始场景的制作_第25张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第26张图片

5 音效数据逻辑

5.1 音效数据可持久化

创建音效管理类
Unity学习之坦克游戏制作(1)开始场景的制作_第27张图片

5.2 声明音效管理的主要变量

Unity学习之坦克游戏制作(1)开始场景的制作_第28张图片

5.3 声明数据管理器

声明单例模式的管理类,用于管理游戏数据
PlayerPrefsDataMgr 感兴趣的可以去看我的 数据持久化 playerprefs的博客,如果有基础建议把学习时间花在xml和json
Unity学习之坦克游戏制作(1)开始场景的制作_第29张图片
如果第一次进入游戏没有音效数据,所以所有的数据要不是false 要不是0 ,所以在音效数据类中增加一个是否是第一次加载数据的标识

Unity学习之坦克游戏制作(1)开始场景的制作_第30张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第31张图片

只会进一次这个逻辑

5.4 在设置面板的数据初始化

新增一个函数进行数据更新
Unity学习之坦克游戏制作(1)开始场景的制作_第32张图片

并且重载虚函数ShowMe,让打开面板的时候更新数据
Unity学习之坦克游戏制作(1)开始场景的制作_第33张图片
测试一下
是选中状态,并且音量是满的就是成功了
Unity学习之坦克游戏制作(1)开始场景的制作_第34张图片

5.5 提供API给外部

Unity学习之坦克游戏制作(1)开始场景的制作_第35张图片

在监听事件中添加各类函数
这是Setting Panel里的
Unity学习之坦克游戏制作(1)开始场景的制作_第36张图片
测试一下
Unity学习之坦克游戏制作(1)开始场景的制作_第37张图片
设置完毕后,停止游戏再开启,应该还是一样的状态
Unity学习之坦克游戏制作(1)开始场景的制作_第38张图片

6 排行榜界面

拖一下UI
Unity学习之坦克游戏制作(1)开始场景的制作_第39张图片
自己可以拼一下

6.1 Panel脚本

和设置一样,首先继承basePanel
关联对象
Unity学习之坦克游戏制作(1)开始场景的制作_第40张图片

GUI太难拖五个对象,所以代码找到对象

Unity学习之坦克游戏制作(1)开始场景的制作_第41张图片

看看找到没
Unity学习之坦克游戏制作(1)开始场景的制作_第42张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第43张图片
关闭界面
Unity学习之坦克游戏制作(1)开始场景的制作_第44张图片

再打开的时候更新信息
Unity学习之坦克游戏制作(1)开始场景的制作_第45张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第46张图片

6.2 更新排行榜数据

创建排行榜数据类
Unity学习之坦克游戏制作(1)开始场景的制作_第47张图片Unity学习之坦克游戏制作(1)开始场景的制作_第48张图片
在声明排行榜列表类

Unity学习之坦克游戏制作(1)开始场景的制作_第49张图片

6.3 在数据管理类初始化

Unity学习之坦克游戏制作(1)开始场景的制作_第50张图片

在这里插入图片描述

6.4 更新排行榜列表数据

Unity学习之坦克游戏制作(1)开始场景的制作_第51张图片

6.5 提供一个在排行榜中添加数据的方法

在GameDataMgr中添加
Unity学习之坦克游戏制作(1)开始场景的制作_第52张图片
在Panel中添加一条测试数据
在这里插入图片描述
别忘了添加监听事件,不然btn没用
Unity学习之坦克游戏制作(1)开始场景的制作_第53张图片
测试成功,多运行几次
Unity学习之坦克游戏制作(1)开始场景的制作_第54张图片

7 背景音乐

7.1 在工程新建空物体管理背景音乐

添加 Audio Source

Unity学习之坦克游戏制作(1)开始场景的制作_第55张图片

7.2 创建新脚本控制音乐开关

挂载在场景的BKMusic上
Unity学习之坦克游戏制作(1)开始场景的制作_第56张图片
改变API 中函数
Unity学习之坦克游戏制作(1)开始场景的制作_第57张图片
Unity学习之坦克游戏制作(1)开始场景的制作_第58张图片

7.3 初始化的时候就设置

如果不初始化的时候设置,不管之前的设置会怎么样,游戏一开始就会播放音乐,只有打开设置面板后才会根据设置改变音乐,所以在初始化脚本的Awake函数中增加一句
Unity学习之坦克游戏制作(1)开始场景的制作_第59张图片

你可能感兴趣的:(unity,学习,游戏,笔记)