极致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等,只能把它们转化成对象才可 ...
随机推荐
- 我对CopyOnWrite的思考
CopyOnWrite 后文中表述为 COW CopyOnWrite容器即写的时候复制一个新的容器进行写:通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy ...
- Maven私服(Repository Manager) - Nexus安装和使用(详细过程)
Maven私服的安装和使用. (注:原创文章,引用请注明来自Clement-Xu的博客!) Maven私服(即Repository Manager)的主要作用: 减少从远方仓库下载的次数,节省带宽.提 ...
- Springboot多数据源配置--数据源动态切换
在上一篇我们介绍了多数据源,但是我们会发现在实际中我们很少直接获取数据源对象进行操作,我们常用的是jdbcTemplate或者是jpa进行操作数据库.那么这一节我们将要介绍怎么进行多数据源动态切换.添 ...
- flask多个app应用组合
由于之前写得接口太多了,分为了多个app,每个app里面有几个接口.部署次数需要很多次,修改成部署一次,在不改变代码的情况下,不使用蓝图,最快的方式就是这样修改. from werkzeug.wsgi ...
- tiny png
golang package main import ( "encoding/base64" "fmt" "os" "net/ht ...
- 算法-KMP
KMP算法的作用在于在一个主串中查找一个主串. 传统查找子串的方法是一个字符一个字符的比较,代码如下: public static int notKMP(String main,String sub) ...
- Material Designer的低版本兼容实现(五)—— ActivityOptionsCompat
extends:http://www.cnblogs.com/tianzhijiexian/p/4087917.html 本文是对API中的方法做了介绍,如果想要看如何让这些方法兼容4.x或2.x可以 ...
- react withClamp装饰器
Clamp.js 等待异步数据加载完后在初始化$clamp withClamp.js import React, { Component } from "react"; expor ...
- ubuntu 忽略文件的50unattended升级问题
ubuntu出现这样问题 既然说那个文件扩展名无效,那干脆直接把那个文件删掉 sudo rm /etc/apt/apt.conf.d/20auto-upgrades.ucf-old 删掉之后应该就不会 ...
- Nginx之使用nginx搭建简单的文件服务器
使用nginx可以搭建简单文件服务器 安装nginx(不详述) 修改配置文件 /usr/local/nginx/conf/nginx.conf user root; /usr/local/nginx/ ...