Unity学习之坦克游戏制作(1)开始场景的制作

文章目录

  • 1. 实现效果
  • 2. 场景装饰
    • 2.1 创建场景
    • 2.2 拖入场景地板
  • 3 开始界面
    • 3.1 导入UI
    • 3.2 创建面板基类
    • 3.2.1 开始按钮
  • 4 设置界面
  • 5 音效数据逻辑
    • 5.1 音效数据可持久化
    • 5.2 声明音效管理的主要变量
    • 5.3 声明数据管理器
    • 5.4 在设置面板的数据初始化
    • 5.5 提供API给外部
  • 6 排行榜界面
    • 6.1 Panel脚本
    • 6.2 更新排行榜数据
    • 6.3 在数据管理类初始化
    • 6.4 更新排行榜列表数据
    • 6.5 提供一个在排行榜中添加数据的方法
  • 7 背景音乐
    • 7.1 在工程新建空物体管理背景音乐
    • 7.2 创建新脚本控制音乐开关
    • 7.3 初始化的时候就设置


1. 实现效果

本系列笔记基于 清华大学出版社的《数据结构:用面向对象方法与C++语言描述》第二版进行学习。
在这里插入图片描述

2. 场景装饰

2.1 创建场景

在这里插入图片描述

2.2 拖入场景地板

在这里插入图片描述
在这里插入图片描述

相当于开始界面,想怎么创建就怎么创建

在这里插入图片描述
我最终模拟的效果
在这里插入图片描述

3 开始界面

3.1 导入UI

这部分不关键,关键的是创建可用来装载脚本的button
这部分感兴趣的可以去看我博客的GUI部分,但建议大家把学GUI的时间拿来学UGUI
导入预设体
Root
在这里插入图片描述
创建一格Label组件作为标题

在这里插入图片描述
这部分也可以自己创建
同时创建四个按钮,
每个按钮都可以自行设置,
在这里插入图片描述
最终实现的效果
在这里插入图片描述

3.2 创建面板基类

使用单例模式
在这里插入图片描述

提供两个方法,给所有子类(面板类)使用
在这里插入图片描述
这个基类的最大作用,就是可以直接传类名给单利模式,而不需要在unity通过名字寻找到脚本的API进行面板的操作
直接.instance就可以进行操作

3.2.1 开始按钮

1)首先创建公共的成员变量 来关联各个组件
在这里插入图片描述

在这里插入图片描述
2) 监听按钮点击后做什么

在这里插入图片描述
先进行测试场景切换有无作用
在build中先把GameScene场景添加上
在这里插入图片描述
此时点击 开始游戏,应该会切换场景

4 设置界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

声明成员变量关联组件
在这里插入图片描述
在这里插入图片描述
因为暂时没有音效文件
所以监听事件先写在这儿,后面再改

在这里插入图片描述
关闭面板
在这里插入图片描述
因为现在一进游戏面板就显示,需要修改逻辑
在start 函数中,所有监听事件下面增加HideMe函数
在这里插入图片描述
此时被隐藏

在这里插入图片描述
在beginPanel中添加
在这里插入图片描述
此时点击游戏设置,应该会跳转到这个界面
点击×应该能关闭界面
在这里插入图片描述

因为GUI的不完善,可能会出现 穿透现象,简单处理一下
在打开设置面板的时候,开始面板进行失活
在关闭设置面板时,再对开始面板激活
在这里插入图片描述
在这里插入图片描述

5 音效数据逻辑

5.1 音效数据可持久化

创建音效管理类
在这里插入图片描述

5.2 声明音效管理的主要变量

在这里插入图片描述

5.3 声明数据管理器

声明单例模式的管理类,用于管理游戏数据
PlayerPrefsDataMgr 感兴趣的可以去看我的 数据持久化 playerprefs的博客,如果有基础建议把学习时间花在xml和json
在这里插入图片描述
如果第一次进入游戏没有音效数据,所以所有的数据要不是false 要不是0 ,所以在音效数据类中增加一个是否是第一次加载数据的标识

在这里插入图片描述
在这里插入图片描述

只会进一次这个逻辑

5.4 在设置面板的数据初始化

新增一个函数进行数据更新
在这里插入图片描述

并且重载虚函数ShowMe,让打开面板的时候更新数据
在这里插入图片描述
测试一下
是选中状态,并且音量是满的就是成功了
在这里插入图片描述

5.5 提供API给外部

在这里插入图片描述

在监听事件中添加各类函数
这是Setting Panel里的
在这里插入图片描述
测试一下
在这里插入图片描述
设置完毕后,停止游戏再开启,应该还是一样的状态
在这里插入图片描述

6 排行榜界面

拖一下UI
在这里插入图片描述
自己可以拼一下

6.1 Panel脚本

和设置一样,首先继承basePanel
关联对象
在这里插入图片描述

GUI太难拖五个对象,所以代码找到对象

在这里插入图片描述

看看找到没
在这里插入图片描述
在这里插入图片描述
关闭界面
在这里插入图片描述

再打开的时候更新信息
在这里插入图片描述
在这里插入图片描述

6.2 更新排行榜数据

创建排行榜数据类
在这里插入图片描述在这里插入图片描述
在声明排行榜列表类

在这里插入图片描述

6.3 在数据管理类初始化

在这里插入图片描述

在这里插入图片描述

6.4 更新排行榜列表数据

在这里插入图片描述

6.5 提供一个在排行榜中添加数据的方法

在GameDataMgr中添加
在这里插入图片描述
在Panel中添加一条测试数据
在这里插入图片描述
别忘了添加监听事件,不然btn没用
在这里插入图片描述
测试成功,多运行几次
在这里插入图片描述

7 背景音乐

7.1 在工程新建空物体管理背景音乐

添加 Audio Source

在这里插入图片描述

7.2 创建新脚本控制音乐开关

挂载在场景的BKMusic上
在这里插入图片描述
改变API 中函数
在这里插入图片描述
在这里插入图片描述

7.3 初始化的时候就设置

如果不初始化的时候设置,不管之前的设置会怎么样,游戏一开始就会播放音乐,只有打开设置面板后才会根据设置改变音乐,所以在初始化脚本的Awake函数中增加一句
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Prompt高级技巧:Few-Shots、COT、SC、TOT、Step-Back

CRISPE框架 如图所示。所谓CRISPE框架,指的是: CR:Capacity and Role(能力与角色)。你希望 ChatGPT 扮演怎样的角色。I:Insight(洞察),背景信息和上下文。S:&#xff08…

【Springboot】日志

1.日志的使用 日志主要用于记录程序运行的情况。我们从学习javase的时候就使用System.out.println();打印日志了,通过打印的日志来发现和定位问题,或根据日志来分析程序运行的过程。在Spring的学习中,也经常根据控制台的⽇志来分析和定位问题 。 日志除…

HarmonyOS开源软件Notice收集策略说明

开源软件Notice是与项目开源相关的文件,收集这些文件的目的是为了符合开源的规范。 收集目标 只收集打包到镜像里面的模块对应的License;不打包的都不收集,比如构建过程使用的工具(如clang、python、ninja等)都是不收…

k8s 部署 Nginx 并代理到tomcat

一、已有信息 [rootmaster nginx]# kubectl get nodes -o wide [rootmaster nginx]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2…

【51单片机】LED 点阵

0、前言 参考&#xff1a;普中 51 单片机开发攻略 第13章 1、硬件 2、软件 mian.c #include <reg52.h> #include <intrins.h> #include "delayms.h"typedef unsigned char u8; typedef unsigned int u16;//定义相应的IO口 #define LED_M P0//LED点阵…

探索创意的新境界:ComfyUI

揭秘节点流程式的革命 - ComfyUI ComfyUI&#xff0c;一款基于节点流程式的 **Stable Diffusion AI 绘图工具 **&#xff0c;为创意设计带来了革命性的变革。通过其独特的工作流程设计&#xff0c;ComfyUI 不仅能够精准定制图像&#xff0c;还能实现可靠的复现&#xff0c;打开…

AlmaLinux 8.9 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任&#xff0c;图解仅供参考&#xff0c;请悉知&#xff01;本次安装图解是在一个全新的演示环境下进行的&#xff0c;演示环境中没有任何有价值的数据&#xff0c;但这并不代表摆在你面前的环境也是如此。生产环境…

【Unity学习笔记】第十二 · New Input System 及其系统结构 和 源码浅析

转载请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/132534422 作者&#xff1a;CSDN|Ringleader| 主要参考&#xff1a; 官方文档&#xff1a;Unity官方Input System手册与API官方测试用例&#xff1a;Unity-Technologies/InputS…

SV学习——数据类型(1)

文章目录 1. 内建数据类型2. 用户自定义3. 枚举类型 1. 内建数据类型 SV中引入新的数据类型logic&#xff0c;SV作为侧重于验证的语言&#xff0c;并不十分关切logic对应的逻辑应该被综合位寄存器还是线网&#xff0c;因为logic被使用的场景如果是验证环境&#xff0c;那么它只…

数据分析实战:城市房价分析

流程图&#xff1a; 1.读数据表 首先&#xff0c;读取数据集。 CRIMZNINDUSCHASNOXRMAGEDISRADTAXPTRATIOBLSTATtarget0.00632182.3100.5386.57565.24.09129615.3396.94.98240.0273107.0700.4696.42178.94.9671224217.8396.99.1421.60.0272907.0700.4697.18561.14.9671224217…

MySQL UNION 操作符

昨天介绍了 MySQL 数据库使用 LIKE 子句来进行筛选查询&#xff0c;今天主要讲解下 MySQL UNION 操作符。 MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合&#xff0c;并去除重复的行。UNION 操作符必须由两个或多个 SELECT 语句组成&#xff0c;每…

5G_射频测试_基础概念(二)

定义了测试参考点&#xff0c;不同的RRU类型 C类型传统RRU Conducted and radiated requirement reference points 4.3.1 BS type 1-C&#xff08;传统RRU一般测试点就是连接天线的射频接头&#xff09; 4.3.2 BS type 1-H&#xff08;宏站MassiveMIMO 矩阵天线&#xff…

QKCP容器平台安装qkcp paas deployment

22年底23年初做的容器云平台的项目&#xff0c;该份是当初实施部署真实生产环境的手册&#xff0c;关键ip和端口已经更改&#xff0c;现贴来给大伙参阅。 x公司qkcp容器平台安装部署手册 目录 x公司qkcp容器平台安装部署手册 1 集群基础环境 3 1.1. 集群规划信息 3 1.2. 标准…

【LeetCode: 13. 罗马数字转整数 + 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Vagrant安装Oracle Data Guard环境示例

在Windows 11下&#xff0c;通过Vagrant安装标准的Data Guard环境&#xff08;默认为non-CDB模式&#xff09;&#xff0c;耗时约26分钟&#xff0c;共生成2台虚机。以下为安装日志&#xff1a; ...host2: Welcome to DGMGRL, type "help" for information.host2: C…

如何提升大模型的推理和规划能力:思维链 CoT + 由少至多提示 Least-to-Most Prompting

如何提升大模型的推理和规划能力 思维链 - CoT思维链改进&#xff1a;Auto-CoT 由少至多提示 - Least-to-Most Prompting 思维链 - CoT 最初的语言模型都是基于经验的&#xff0c;只能根据词汇之间的相关性输出答案&#xff0c;根本没有思考能力…… 但是从使用思维链后&…

阶段七性能测试jmeter报告图表,并发数和Locust

一级目录报告图表 1.聚合报告 重点关心的性能指标&#xff1a; 响应时间 1.观察当前的最大最小值的波动范围 2. 如果波动范围不大&#xff0c;以平均响应时间作为最终的性能响应时间结果 3.如果波动范围很大&#xff0c;以90%&#xff08;经验的响应时间作为最终性能响应时间…

Linux入门攻坚——13、实战软件安装-搭建Python3.8环境-1

到现在&#xff0c;应该可以进行软件安装的实践了。 前面学习Python时&#xff0c;就像搭建一个Linux的服务器环境&#xff0c;一直没有成功&#xff0c;现在尝试在CentOS6.10上搭建Python3.8环境。 安装软件前&#xff0c;需要的前置条件其一就是网络是连通的&#xff0c;Li…

云边协同的 RTC 如何助力即构全球实时互动业务实践

作者&#xff1a;即构科技 由 51 CTO 主办的“WOT 全球技术创新大会 2023深圳站”于 11 月 24 日 - 25 日召开&#xff0c;即构科技后台技术总监肖潇以“边缘容器在全球音视频场景的探索与实践”为主题进行分享。 边缘计算作为中心云计算的补充&#xff0c;通过边缘容器架构和…

配置DNS主从服务器,实现真反向解析

主服务器 [rootbogon ~]# systemctl stop firewalld.service #关闭防火墙 [rootbogon ~]# setenforce 0 #关闭selinux [rootbogon ~]# systemctl restart named #启动dns服务 [rootbogon ~]# vim /etc/named.conf #进入dns配置文件 options {#监听…