今天完成的主要内容时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的更多相关文章

  1. 极致21点开发DAY1

    最近在学习UI框架,无奈没有完整的项目学习,四处搜索找了这款游戏源码,在Unity2018上完美运行.于是乎开始学习开发这款游戏.今天主要完成的任务时拼UI.搭建了3个场景, StartScene, ...

  2. 极致21点开发DAY4

    完成的内容:1.修改上一篇博文中的Bug  2.完成任务窗口逻辑 using System; using System.Collections.Generic; using UnityEngine; ...

  3. 极致21点开发DAY3

    今天完成的主要任务是活动窗口的显示与关闭,以及领取金币的逻辑.用到了数据持久化技术.我想记录的主要是领取金币的逻辑. 领取金币算法:如果今天没有领取金币,即可领取,否则什么都不做. 一句话描述足矣,但 ...

  4. python全栈开发-Day2 布尔、流程控制、循环

    python全栈开发-Day2 布尔 流程控制 循环   一.布尔 1.概述 #布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人 ...

  5. Sea.js提供简单、极致的模块化开发体验

    为什么使用 Sea.js ? Sea.js 追求简单.自然的代码书写和组织方式,具有以下核心特性: 简单友好的模块定义规范:Sea.js 遵循 CMD 规范,可以像 Node.js 一般书写模块代码. ...

  6. 运维平台cmdb开发-day2

    一 发送数据到api(Django的URL) 发送请求携带参数 requests.get(url='http://127.0.0.1:8000/api/asset/?k1=123') # <Qu ...

  7. 21:开发脚本管理服务端LVS案例

    [root@lb03 scripts]# cat lv_manager.sh #!/bin/bash #定义只能是root用户执行 ];then echo "permission deny ...

  8. 21 javaweb开发--bug调试技巧

    1.当修改代码后,测试时没有任何效果 解决方案:换个浏览器试试,可能是浏览器缓存的原因.

  9. IOS开发基础知识碎片-导航

    1:IOS开发基础知识--碎片1 a:NSString与NSInteger的互换 b:Objective-c中集合里面不能存放基础类型,比如int string float等,只能把它们转化成对象才可 ...

随机推荐

  1. linux技巧---为各应用创建快捷方式

    linux中启动或关闭应用有时候比较麻烦,你必须cd到该应用的可执行脚本的目录中再执行该脚本,不能在任意目录下开启或关闭应用..当然,设置了环境变量path可以解决在任意目录下开启应用的问题,但是每个 ...

  2. dubbo系列一:dubbo介绍、dubbo架构、dubbo的官网入门使用demo

    一.dubbo介绍 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成.简单地说,dubbo是一个基于Spri ...

  3. JS对象与Dom对象与jQuery对象之间的区别

    前言 通过问题看本质: 举例: js的写法:document.getElementById('save').disabled=true; 在jquery中我是这样写的 $("#save&qu ...

  4. VSCode之快捷键和常用插件

    前言 介绍一下我在VSCode中常用的一些快捷方式: ctrl+上下箭头 上下滚动页面 Ctrl+Shift+K 删除某一行 Alt+ ↑ / ↓ 移动某一行 Shift+Alt + ↓ / ↑ 复制 ...

  5. 写在开始前---web异常处理

    分层项目中,有上层调用下层,每一层都可能出错,比如数据库连接,文件读写等异常.除了运行时程序的异常,还有业务逻辑的一些问题.发生异常需要做一定处理,既要让开发人员便于排查问题,又要让用户看到友好又便于 ...

  6. QT下的贪吃蛇

    QT写的贪吃蛇,学习于https://www.devbean.net/2012/12/qt-study-road-2-snake-1/ 建议就学习一下开发思想,开发游戏还是用专门的编译器. 多加了墙, ...

  7. pdf转html插件~~~pdf2htmlEX安装,配置及使用

    这是一个将pdf转化为html的服务,开源的. 此功能服务的代码在git上的地址为: https://github.com/coolwanglu/pdf2htmlEX/wiki 安装: 在ubuntu ...

  8. mac iterm 提示符序列调整

    mac终端提示符显示绝对路径太长了,能不能提示符不显示全路径呢?自定义提示符前缀呢? mac终端命令换行覆盖问题也顺带解决. 编辑~/.bash_profile export PS1='' 参数: 序 ...

  9. CKFinker 2.5.0.1 去demo标示

    演示版会在文件浏览界面显示演示消息,分别是左下角(文件夹框下面)和列表框上部 都是通过修改ckfinder.js来实现 右下角标示: 查找: {if(C.getItem(E).rd("\x7 ...

  10. 用ps怎么修改照片的背景颜色??【申明:来源于网络】

    用ps怎么修改照片的背景颜色??[申明:来源于网络] 地址:http://wenda.so.com/q/1361505315060523?src=140