今天完成的主要内容时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. Java窗体居中显示的2种方法

    第1种方法: //setSize(300, 200); pack(); // 得到显示器屏幕的宽.高 int width = Toolkit.getDefaultToolkit().getScreen ...

  2. Modelsim使用常见问题集锦(实时更新)

    1.Modelsim使用时出现闪退情况,解决办法:(1)请再次查看modelsim是否破解完全:(2)电脑上安装的文件与Modelsim有冲突,多半是爱奇艺这个软件,删掉爱奇艺软件. 2.再利用mod ...

  3. 遍历一个Set的方法只有一个:迭代器(interator)。

    Set-HashSet实现类: 遍历一个Set的方法只有一个:迭代器(interator). HashSet中元素是无序的(这个无序指的是数据的添加顺序和后来的排列顺序不同),而且元素不可重复. 在O ...

  4. Ubuntu下安装sbt

    参考  ubuntu14 手动安装sbt 1.下载sbt通用平台压缩包:sbt-0.13.5.tgz http://www.scala-sbt.org/download.html 2.建立目录,解压文 ...

  5. jenkins之 Throttle Concurrent Builds使用

    Jenkins控制并发插件 Throttle Concurrent Builds介绍,管网见:https://github.com/jenkinsci/throttle-concurrent-buil ...

  6. 查看 java 中的编译的字节码文件

    javap -c Atomicity ---------- javap -c 产生的字节码文件---------- Compiled from "Atomicity.java" p ...

  7. 判断网页请求与FTP请求

    实例说明 在访问Internet网络时,经常涉及到很多访问协议,其中最明显.最常用的就是访问页面的http协议.访问ftp服务器的FTP协议等.

  8. elk-图形化展示(八)

    可以根据自己定义: pv: uv: ip top 10 ua tope 10 url top 5 status  top 10 仪表板展示:

  9. Spring-Boot数据库密码加密配置

    springboot集成mysql/oracle时需要在yml/properties中配置数据库信息,用户名密码是肯定有的,所以就涉及到密码的加密,当然不加密也是可以的,正如某位大佬所说的,不加密就像 ...

  10. win 10安装Linux虚拟机教程

    1.首先下载虚拟机 用的是VMware 官方下载地址:https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmwar ...