Unity坦克大战开发全流程——游戏场景——游戏界面——设置界面复用

游戏场景——游戏界面——设置界面复用

先将开始场景当中的设置面板复制过来

由于设置面板挂载的脚本都是相同的,在BeginScene中关闭设置面板时不会报空,而在GameScene中关闭设置面板时却会报空,这是因为监听事件中的单例模式调用的实例是BeginPanel,而不是GamePanel。要解决这个问题只需要利用场景判断的API来判断当前场景是否是BeginScene即可。

settingPanel脚本中写这个代码即可

并且还要将开始场景当中的bgm复制过来,这也是为了防止报空

总结:

直到当前SettingPanel的代码为 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;public class SettingPanel : BasePanel<SettingPanel>
{//关联的各按钮控件public CustomGUISlider sliderMusic;public CustomGUISlider sliderSound;public CustomGUIToggle toggleMusic;public CustomGUIToggle toggleSound;public CustomGUIButton btnExit;void Start(){//事件监听sliderMusic.changeValue += (value) => GameDataMgr.Instance.ChangeBKValue(value);sliderSound.changeValue += (value) => GameDataMgr.Instance.ChangeSoundValue(value);toggleMusic.changeValue += (value) => GameDataMgr.Instance.OpenOrCloseBKMisic(value);toggleSound.changeValue += (value) => GameDataMgr.Instance.OpenOrCloseSound(value);btnExit.clickEvent += () =>{HideMe();if (SceneManager.GetActiveScene().name == "BeginScene"){BeginPanle.Instance.ShowMe();}};HideMe();}//数据更新函数public void UpdatePanelInfo(){//获得musicData这个变量的信息MusicData data = GameDataMgr.Instance.musicData;//对自己的变量进行赋值sliderMusic.nowValue = data.bkValue;sliderSound.nowValue = data.soundValue;toggleMusic.isSel = data.isOpenBK;toggleSound.isSel = data.isOpenSound;}//重写虚函数public override void ShowMe(){base.ShowMe();//在每次显示面板时就要更新数据UpdatePanelInfo();}public override void HideMe(){base.HideMe();Time.timeScale = 1;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 硬件配置

Linux 查看硬件配置 #查看CPU [capioscapios8163 ~]$ cat /proc/cpuinfo | grep name model name : Intel(R) Xeon(R) Platinum 8163 CPU 2.50GHz model name : Intel(R) Xeon(R) Platinum 8163 CPU 2.50GHz model name : Intel(R) Xeon(R) Platinum 8163 CPU 2.50GHz mo…

基于机器视觉的害虫种类及计数检测研究-人工智能项目-附代码

概述 农业与民生和经济发展息息相关&#xff0c;对农业发展科学化的关注既是民生需求&#xff0c; 也是经济稳步发展的迫切需求。病虫害是影响农作物生长的重要因素&#xff0c;对农作物的产量和品质都能造成无法估计的损害。 - 针对目前广大农业产区农业植保人员稀缺、病虫害…

爬虫基础一(持续更新)

爬虫概念&#xff1a; 通过编写程序&#xff0c;模拟浏览器上网&#xff0c;然后让其去互联网上抓取数据的过程 分类&#xff1a; 1&#xff0c;通用爬虫&#xff1a;抓取一整张页面数据 2&#xff0c;聚焦爬虫&#xff1a;抓取页面中的局部内容 3&#xff0c;增量式爬虫&…

【UnityShader入门精要学习笔记】(2)GPU流水线

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 上节复习GPU流水线顶点着色…

梯度下降简介

梯度下降简介 1、背景概述2、梯度下降3、梯度下降的步长1、背景概述 在Scikit-Learn线性回归第一篇文章(详见:传送门)中,我们给出了线性回归的损失函数的定义: L = ∑ i = 1 m ( y i − f ( x i ) ) 2 L=\sum_{i=1}^m(y_i-f(x_i))^2 L=i=1∑m​(yi​−f(xi​))2 回忆一下…

Linux操作系统极速入门[常用指令]

linux概述&#xff1a; Linux是一套免费使用和自由传播的操作系统 我们为什么要学&#xff0c;Linux&#xff1f; 主流操作系统&#xff1a; linux系统版本&#xff1a; 内核版&#xff1a; 由linux核心团队开发&#xff0c;维护 免费&#xff0c;开源 负责控制硬件 发行版&…

红队攻防实战之DC2

吾愿效法古圣先贤&#xff0c;使成千上万的巧儿都能在21世纪的中华盛世里&#xff0c;丰衣足食&#xff0c;怡然自得 0x01 信息收集: 1.1 端口探测 使用nmap工具 可以发现开放了80端口&#xff0c;网页服务器但是可以看出做了域名解析&#xff0c;所以需要在本地完成本地域名…

RISC Zero的Babybear域 及其 扩域

1. 引言 前序博客见&#xff1a; 有限域的Fast Multiplication和Modular Reduction算法实现 代码实现见&#xff1a; https://github.com/risc0/risc0/blob/main/risc0/core/src/field/baby_bear.rshttps://github.com/risc0/risc0/tree/main/risc0/circuit/rv32im-sys/cxx…

Prometheus+Grafana(详细讲解)

Prometheus(普罗米修斯&#xff09;监控系统 1、Prometheus概述 1.1 任务背景 某公司由于业务快速发展&#xff0c;公司要求对现有机器进行业务监控&#xff0c;责成运维部门来实施这个任务。任务要求如下&#xff1a; 部署监控服务器&#xff0c;实现7x24实时监控 针对公司…

4~20mA恒流源 --PLC自控控制

输出部分不接地 1.1&#xff0c; 常规恒流源的方式 用采样电阻 * 电流 控制电压的方式。 负载电阻 * 电流 < 工作电压 1.2&#xff0c;根据运放高阻的特性 Ir Ui/ R, Ir IL, 最大输出电流限制于 RL * Il < Ui. 输出部分接地&#xff0c;工程上更多是用于豪兰德恒流源…

京东高级Java面试真题

今年IT寒冬&#xff0c;大厂都裁员或者准备裁员&#xff0c;作为开猿节流主要目标之一&#xff0c;我们更应该时刻保持竞争力。为了抱团取暖&#xff0c;林老师开通了《知识星球》&#xff0c;并邀请我阿里、快手、腾讯等的朋友加入&#xff0c;分享八股文、项目经验、管理经验…

MIT_线性代数笔记:第 22 讲 对角化和矩阵的幂

目录 对角化矩阵 Diagonalizing a matrix S−1AS Λ矩阵的幂 Powers of A重特征值 Repeated eigenvalues差分方程 Difference equations u k 1 u_{k1} uk1​A u k u_k uk​斐波那契数列 Fibonacci sequence 本讲中将学习如何对角化含有 n 个线性无关特征向量的矩阵&#xff…

HarmonyOS 路由传参

本文 我们来说两个page界面间的数据传递 路由跳转 router.pushUrl 之前我们用了不少了 但是我们只用了它的第一个参数 url 其实他还有个params参数 我们第一个组件可以编写代码如下 import router from ohos.router Entry Component struct Index {build() {Row() {Column() …

低功耗蓝牙模块:促进智慧城市发展的关键技术

在科技快速发展的时代&#xff0c;智慧城市的概念正引领着城市管理的革新。为实现城市更高效、可持续和智能化的管理&#xff0c;低功耗蓝牙模块成为推动智慧城市发展的关键技术之一。本文将探讨低功耗蓝牙模块在智慧城市中的作用&#xff0c;以及其在城市基础设施、公共服务等…

如何在Flink SQL中轻松实现高效数据处理:最佳实践揭秘Protobuf自定义格式

目录 Flink SQL Protobuf Format设计要点 1. 引言 2. 为什么需要自定义Protobuf格式 3. 自定义Protobuf格式的

HackTheBox - Medium - Linux - Interface

Interface Interface 是一种中等难度的 Linux 机器&#xff0c;具有“DomPDF”API 端点&#xff0c;该端点通过将“CSS”注入处理后的数据而容易受到远程命令执行的影响。“DomPDF”可以被诱骗在其字体缓存中存储带有“PHP”文件扩展名的恶意字体&#xff0c;然后可以通过从其…

RoadMap6:C++的引用与指针

摘要&#xff1a;本文首先介绍 C 的内存模型和变量周期作为知识背景&#xff0c;接着对C中的引用和指针&#xff08;原始指针和智能指针&#xff09;进行介绍。 1. 对象生命周期 什么是对象生命周期&#xff1f;简单来说&#xff0c;对象生命周期指的是&#xff1a;对象从创建…

Python序列之字典

系列文章目录 Python序列之列表Python序列之元组Python序列之字典&#xff08;本篇文章&#xff09;Python序列之集合 Python序列之字典 系列文章目录前言一、字典是什么&#xff1f;二、字典的操作1.创建&#xff08;1&#xff09;通过{}、dict()创建&#xff08;2&#xff0…

TDD-LTE TAU流程

目录 1. TAU成功流程 1.1 空闲态TAU 1.2 连接态TAU 2. TAU失败流程 当UE进入一个小区&#xff0c;该小区所属TAI不在UE保存的TAI list内时&#xff0c;UE发起正常TAU流程&#xff0c;分为IDLE和CONNECTED&#xff08;即切换时&#xff09;下。如果TAU accept分配了一个新的…

浅析PCIe 6.0功能更新与实现的挑战-5

设备Ready报告机制 Device Readiness Status (DRS) 是PCIe规范中引入的一种机制&#xff0c;旨在改进设备初始化和就绪状态的检测与报告。 在以往的PCIe版本中&#xff0c;系统通常依赖于固定的超时机制来判断设备是否已经成功初始化并准备好进行数据传输。然而&#xff0c;这…