极致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等,只能把它们转化成对象才可 ...
随机推荐
- iOS - 国内注册境外 Apple id 账号
注册前准备工作 需要手头MAC一台 AppStore下载VPN Plus FQ到美国(ipip.net 查看当前ip 是否是在境外 当前ip 在境外才可以哦) 动手搞起来 https://applei ...
- pandas功能使用rename, reindex, set_index 详解
pandas rename 功能 在使用 pandas 的过程中经常会用到修改列名称的问题,会用到 rename 或者 reindex 等功能,每次都需要去查文档 当然经常也可以使用 df.colum ...
- vue项目实战中的增、删、改、查
参考:https://blog.csdn.net/xr510002594/article/details/81665762?utm_source=blogxgwz0 https://blog.csdn ...
- 10.vue框架
vue框架 易用.灵活.高效 https://cn.vuejs.org/ mvc M model 数据 模型 V view 视图 dom操作 C controller 控制器 路由 C oBtn.on ...
- ruby离线安装整理
参考官方文档: https://rvm.io/rvm/offline 参考博客:https://blog.csdn.net/topswim/article/details/79260369 一.前提 ...
- JDK线程池的拒绝策略
关于新疆服务请求未带入来话原因的问题 经核查,该问题是由于立单接口内部没有成功调用接续的 “更新来电原因接口”导致的,接续测更新来电原因接口编码:NGCCT_UPDATESRFLAG_PUT ,立单接 ...
- position inherit 定位
inherit 继承父元素 定位 举例 : <div class="father"> <p></p> </div> div{ ...
- 常用C++面试总结
指定对齐值:#pragma pack(n),n=1,2,4,8,16改变系统的对齐系数struct和union都是由多个不同的数据类型成员组成, 但在任何同一时刻, union中只存放了一个被选中的成 ...
- css学习_css定位
1.定在某个位置:简称定位 2.浮动和定位的区别 定位的分类:定位模式 a.静态定位:(标准流) b.相对定位(不脱离文档流)---以自己左上角为基准点定位 c.绝对定位absolute (拼爹型: ...
- Vijos 1360 - 八数码问题 - [A*]
题目链接:https://vijos.org/p/1360 优先队列BFS: 这个八数码问题本身其实是之前人工智能实验课的作业…… 首先,如果不带估价函数,直接用优先队列BFS,肯定也是能得到正确结果 ...