文章目录
1. 实现效果
2. 场景装饰
2.1 创建场景
2.2 拖入场景地板
相当于开始界面,想怎么创建就怎么创建
我最终模拟的效果
3 开始界面
3.1 导入UI
这部分不关键,关键的是创建可用来装载脚本的button
这部分感兴趣的可以去看我博客的GUI部分,但建议大家把学GUI的时间拿来学UGUI
导入预设体
Root
创建一格Label组件作为标题
这部分也可以自己创建
同时创建四个按钮,
每个按钮都可以自行设置,
最终实现的效果
3.2 创建面板基类
使用单例模式
提供两个方法,给所有子类(面板类)使用
这个基类的最大作用,就是可以直接传类名给单利模式,而不需要在unity通过名字寻找到脚本的API进行面板的操作
直接.instance就可以进行操作
3.2.1 开始按钮
1)首先创建公共的成员变量 来关联各个组件
2) 监听按钮点击后做什么
先进行测试场景切换有无作用
在build中先把GameScene场景添加上
此时点击 开始游戏,应该会切换场景
4 设置界面
声明成员变量关联组件
因为暂时没有音效文件
所以监听事件先写在这儿,后面再改
关闭面板
因为现在一进游戏面板就显示,需要修改逻辑
在start 函数中,所有监听事件下面增加HideMe函数
此时被隐藏
在beginPanel中添加
此时点击游戏设置,应该会跳转到这个界面
点击×应该能关闭界面
因为GUI的不完善,可能会出现 穿透现象,简单处理一下
在打开设置面板的时候,开始面板进行失活
在关闭设置面板时,再对开始面板激活
5 音效数据逻辑
5.1 音效数据可持久化
创建音效管理类
5.2 声明音效管理的主要变量
5.3 声明数据管理器
声明单例模式的管理类,用于管理游戏数据
PlayerPrefsDataMgr 感兴趣的可以去看我的 数据持久化 playerprefs的博客,如果有基础建议把学习时间花在xml和json
如果第一次进入游戏没有音效数据,所以所有的数据要不是false 要不是0 ,所以在音效数据类中增加一个是否是第一次加载数据的标识
只会进一次这个逻辑
5.4 在设置面板的数据初始化
新增一个函数进行数据更新
并且重载虚函数ShowMe,让打开面板的时候更新数据
测试一下
是选中状态,并且音量是满的就是成功了
5.5 提供API给外部
在监听事件中添加各类函数
这是Setting Panel里的
测试一下
设置完毕后,停止游戏再开启,应该还是一样的状态
6 排行榜界面
拖一下UI
自己可以拼一下
6.1 Panel脚本
和设置一样,首先继承basePanel
关联对象
GUI太难拖五个对象,所以代码找到对象
看看找到没
关闭界面
再打开的时候更新信息
6.2 更新排行榜数据
创建排行榜数据类
在声明排行榜列表类
6.3 在数据管理类初始化
6.4 更新排行榜列表数据
6.5 提供一个在排行榜中添加数据的方法
在GameDataMgr中添加
在Panel中添加一条测试数据
别忘了添加监听事件,不然btn没用
测试成功,多运行几次
7 背景音乐
7.1 在工程新建空物体管理背景音乐
添加 Audio Source
7.2 创建新脚本控制音乐开关
挂载在场景的BKMusic上
改变API 中函数
7.3 初始化的时候就设置
如果不初始化的时候设置,不管之前的设置会怎么样,游戏一开始就会播放音乐,只有打开设置面板后才会根据设置改变音乐,所以在初始化脚本的Awake函数中增加一句