极致21点开发DAY2
今天完成的主要内容时MainScene场景中设置面板的开发。游戏逻辑:点击设置按钮,弹出音乐设置弹框,弹框内容包括音乐的打开与关闭,退出游戏。
点击退出游戏,弹出退出游戏确认面板。效果图:


1.首先在Controller.cs文件中添加Settings对象以及这两个面板对象字段。然后添加打开设置面板的方法,代码如下:
public GameObject set_music;
public GameObject set_confirm; private void OnSetBtn()
{
settings.SetActive(true);
//确保每次打开设置时,音乐设置面板打开,确认面板关闭
set_music.SetActive(true);
set_confirm.SetActive(false);
} //当然还有在Init方法中添加监听的代码
setBtn.onClick.AddListener(OnSetBtn);
2.然后在Settings物体上添加脚本SetController.cs
这个脚本目前完成的任务包括控制2个窗口的显示逻辑。分2步走,比较懒,一次更所有代码了。
/* 项目:极致21点
*
* 主题:
*
* 功能:设置面板的逻辑:1.打开关闭音乐逻辑
* 2.是否退出游戏逻辑
* 作者:Mr.Zhang
*
* 日期:2019.1.1
*
*/
using UnityEngine;
using UnityEngine.UI;
namespace PureMVCDemo
{
public class SetController : MonoBehaviour
{
private bool musicOnOff;
public Image musicImage;
public Sprite musicOn;
public Sprite musicOff;
public GameObject musicSetting;
public Button onOffBtn;
public Button backBtn;
public Button quitGameBtn; public GameObject confirm;
public Button sureBtn;
public Button cancelBtn; private void Start()
{
musicOnOff = true;
Init(); }
void Init()
{
onOffBtn.onClick.AddListener(OnOnOffBtn);
backBtn.onClick.AddListener(OnBackBtn);
quitGameBtn.onClick.AddListener(OnQuitGamBtn);
sureBtn.onClick.AddListener(OnSureBtn);
cancelBtn.onClick.AddListener(OnCancelBtn);
}
#region 音乐设置面板监听事件
/// <summary>
/// 音乐开启关闭监听事件
/// </summary>
private void OnOnOffBtn()
{
//如果当前状态是打开,则切换为关闭
if (musicOnOff)
{
musicImage.sprite = musicOff;
//修改开关状态
musicOnOff = false;
}
else
{
musicImage.sprite = musicOn;
musicOnOff = true;
}
}
/// <summary>
/// 返回主面板,关闭设置面板
/// </summary>
private void OnBackBtn()
{
// Debug.Log("Back button clicked");
this.gameObject.SetActive(false);
}
/// <summary>
/// 关闭音乐设置面板,弹出确认退出游戏面板
/// </summary>
private void OnQuitGamBtn()
{
musicSetting.SetActive(false);
confirm.SetActive(true);
}
#endregion #region 确认退出面板监听事件
/// <summary>
/// 确认退出游戏
/// </summary>
private void OnSureBtn()
{
Debug.Log("Sure Button clicked");
Application.Quit();
}
/// <summary>
/// 取消退出游戏
/// </summary>
private void OnCancelBtn()
{ //关闭设置面板
this.gameObject.SetActive(false);
}
#endregion
}
}
极致21点开发DAY2的更多相关文章
- 极致21点开发DAY1
最近在学习UI框架,无奈没有完整的项目学习,四处搜索找了这款游戏源码,在Unity2018上完美运行.于是乎开始学习开发这款游戏.今天主要完成的任务时拼UI.搭建了3个场景, StartScene, ...
- 极致21点开发DAY4
完成的内容:1.修改上一篇博文中的Bug 2.完成任务窗口逻辑 using System; using System.Collections.Generic; using UnityEngine; ...
- 极致21点开发DAY3
今天完成的主要任务是活动窗口的显示与关闭,以及领取金币的逻辑.用到了数据持久化技术.我想记录的主要是领取金币的逻辑. 领取金币算法:如果今天没有领取金币,即可领取,否则什么都不做. 一句话描述足矣,但 ...
- python全栈开发-Day2 布尔、流程控制、循环
python全栈开发-Day2 布尔 流程控制 循环 一.布尔 1.概述 #布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人 ...
- Sea.js提供简单、极致的模块化开发体验
为什么使用 Sea.js ? Sea.js 追求简单.自然的代码书写和组织方式,具有以下核心特性: 简单友好的模块定义规范:Sea.js 遵循 CMD 规范,可以像 Node.js 一般书写模块代码. ...
- 运维平台cmdb开发-day2
一 发送数据到api(Django的URL) 发送请求携带参数 requests.get(url='http://127.0.0.1:8000/api/asset/?k1=123') # <Qu ...
- 21:开发脚本管理服务端LVS案例
[root@lb03 scripts]# cat lv_manager.sh #!/bin/bash #定义只能是root用户执行 ];then echo "permission deny ...
- 21 javaweb开发--bug调试技巧
1.当修改代码后,测试时没有任何效果 解决方案:换个浏览器试试,可能是浏览器缓存的原因.
- IOS开发基础知识碎片-导航
1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...
随机推荐
- SpringBoot2.X + SpringCache + redis解决乱码问题
环境:SpringBoot2.X + SpringCache + Redis Spring boot默认使用的是SimpleCacheConfiguration,使用ConcurrentMapCach ...
- 【Excel】输出固定长文本
'******************************************************************************* ' 固定長形式テキストファイル書き出す ...
- odoo11社区版python依赖库相对odoo10的变化
- 将ubuntu的home迁移至第二块磁盘
在忍受了一整周的磁盘将满的报警之后,今天终于着手准备将占据64G磁盘中的44G的Home迁移至另外一块磁盘,当然,这也是使用Linux做PC OS的正确使用方式.在Linux的目录管理风格的基础上,这 ...
- windows服务器的误解
自以为服务器就一种 配置,mac,windows服务器 目的:mac希望连接windows服务器,并替换打包的项目文件, 误区,使用ssh 最后明白了 直到看到一句话 阿里云ECS的安全组默认只放行2 ...
- Golang知识图谱
原:https://www.processon.com/view/link/5a9ba4c8e4b0a9d22eb3bdf0?from=timeline 百度脑图重制:http://naotu.bai ...
- 11.1 vue(2)
2018-11-1 19:41:00 2018年倒数第二个月! 越努力越幸运!!!永远不要高估自己! python视频块看完了!还有30天吧就结束了! 今天老师讲的vue 主要是看官网文档 贴上连接 ...
- Vue.js中滚动条加载更多数据
本文章参考:http://www.cnblogs.com/ssrsblogs/p/6108423.html 分析:1.需要判断滚动条是否到底部: 需要用到DOM的三个属性值,即scrollTop.cl ...
- vue2.0 vs vue
vue2.0相比vue1.0 有哪些改变,今天总结了一下 vue2.0组件中 template 不在支持代码片段 //vue1.0组件中template写法 <template> < ...
- ifcfg命令
ifcfg命令是一个bash脚本程序,用来设置Linux中的网络接口参数. 语法 ifcfg(参数) 参数 网络接口:指定要操作的网络接口: add/del:添加或删除网络接口上的地址: ip地址:指 ...