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

news2024/12/23 18:57:53

文章目录

  • 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函数中增加一句
在这里插入图片描述

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

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

相关文章

​WordPress顶部管理工具栏怎么添加一二级自定义菜单?

默认情况下,WordPress前端和后台页面顶部都有一个“管理工具栏”,左侧一般就是站点名称、评论、新建,右侧就是您好,用户名称和头像。那么我们是否可以在这个管理工具栏中添加一些一二级自定义菜单呢? 其实&#xff0c…

JavaScript库jquery的使用方法

"写更少,做更多"是jquery的设计理念,jquery是一个兼容多浏览器的JavaScript库,利用jquery的语法设计能使开发更便捷。 网页添加jquery的方法:1.从jquery.com下载库;2.从CDN中载入库(示例使用)&a…

线性代数:矩阵运算(加减、数乘、乘法、幂、除、转置)

目录 加减 数乘 矩阵与矩阵相乘 矩阵的幂 矩阵转置 方阵的行列式 方阵的行列式,证明:|AB| |A| |B| 加减 数乘 矩阵与矩阵相乘 矩阵的幂 矩阵转置 方阵的行列式 方阵的行列式,证明:|AB| |A| |B|

项目管理中如何有效沟通?项目管理有效沟通指南

无论是少数人的小型企业还是拥有数十名员工的大公司,有效的沟通对于确保每个人都参与并准备好在项目中实现相同的目标至关重要。 然而,由于沟通不畅,似乎在翻译中总是丢失一些东西。事实上,根据布兰迪斯大学的一项研究&#xff0c…

k8s集群加入一个master2--kubeadm方式

已经有一个集群: 192.168.206.138 master 192.168.206.136 k8s-node1 192.168.206.137 k8s-node2 kubectl get nodes -o wide 新加入一个master2节点 192.168.206.139 master2 一、初始化系统参数 139 master2 上 #在136、137、138上添加hosts“” echo "…

MSG3D

论文在stgcn与sta-lstm基础上做的。下面讲一下里面的方法: 1.准备工作 符号。这里是对符号进行解释。 一个人体骨骼图被记为G(v,E) 图卷积: 图卷积定义 考虑一种常用于处理图像的标准卷积神经网络 (CNN)。输入是像素网格。每个像素都有一个数据值向…

protobuf 之诡异的文件流与压缩

只接上干货,内容较干。文章大概需要花费5分钟简单了解下。 1、Gzip 直接看源码头文件如上图。压缩对象 GzipOutputStream ,通过函数操作可以看到整个文件流是比较完整并清晰。 因为它显示清晰包含了 从初始化 到 flush 到 close 的显示调用 2、Ostream…

同样是IT行业,测试和开发薪资真就差这么大吗?

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

ESP32-TCP服务端(Arduino)

将ESP32设置为TCP服务器 介绍 TCP(Transmission Control Protocol)传输控制协议,是一种面向连接的(一个客户端对应一个服务端)、可靠的传输层协议。在TCP的工作原理中,它会将消息或文件分解为更小的片段&a…

c++:string相关的oj题(把字符串转换成整数、344.反转字符串、387. 字符串中的第一个唯一字符、917. 仅仅反转字母)

文章目录 1.把字符串转换成整数题目详情代码思路 2. 344.反转字符串题目详情代码1思路1代码2思路 3. 387. 字符串中的第一个唯一字符题目详情代码思路 4. 917. 仅仅反转字母题目详情代码思路 1.把字符串转换成整数 传送门 题目详情 代码 class Solution { public:int StrToI…

DDOD(Disentangle Your Dense Object Detector)解析

paper:Disentangle Your Dense Object Detector official implementation:https://github.com/zehuichen123/DDOD third-party implementation:https://github.com/open-mmlab/mmdetection/tree/main/configs/ddod 存在的问题 现有的目标…

Docker命令---搜索镜像

介绍 使用docker命令搜索镜像。 命令 docker search 镜像命令:版本号示例 以搜索ElasticSearch镜像为例 docker search ElasticSearch

华而有实,维乐Prevail Glide带你领略风景线,成为风景线~

大家都知道呢!骑行,不仅是一种运动,更是一种生活态度。在骑行装备的世界里,一个好的坐垫对于骑行的舒适度和安全性至关重要。那今天,我要为大家推荐一款备受赞誉的坐垫——维乐坐垫美学系列-Prevail Glide。    为…

学习笔记——克里金插值

有一篇大神的文章写得非常的具体, https://xg1990.com/blog/archives/222 下面写下一些学习笔记: 1、关于克里金插值的基本原理 克里金插值来源于地理学,它的前提是地理学第一定律:所有事物都与其他事务相关,但是近…

Linux性能监控命令-top

简介 top 命令用于实时监视系统的性能和进程信息。它提供了一个动态的、交互式的界面,列出了当前运行的进程,并显示了它们的 CPU 和内存使用情况。通过该命令可以对硬件性能瓶颈做出基本判断。 1. 语法 top top [参数] top 有 2 种指定参数方式&#xff…

Python 生成 图片网页列表 显示路径和建立时间 笔记

Python 一键 生成 图片网页列表 显示路径和建立时间 (方便查看复制路径、重复一键生成) 支持格式:jpg \png\ svg\ webp 图片网页列表 图示: 参考代码: # -*- coding: utf-8 -*- import os import datetime# 指定图片…

自己构建webpack+vue3+ts

先看看我的目录结构(我全局使用TS): 一、安装配置webpack打包 安装esno npm install esnoesno 是基于 esbuild 的 TS/ESNext node 运行时,有了它,就可以直接通过esno *.ts的方式启动脚本,package.json中添加 type:…

【动态规划】【C++算法】801. 使序列递增的最小交换次数

作者推荐 【动态规划】【广度优先搜索】【状态压缩】847 访问所有节点的最短路径 本文涉及知识点 动态规划汇总 数组 LeetCode801使序列递增的最小交换次数 我们有两个长度相等且不为空的整型数组 nums1 和 nums2 。在一次操作中,我们可以交换 nums1[i] 和 num…

【Java程序员面试专栏 专业技能篇】MySQL核心面试指引(二):核心机制策略

关于MySQL部分的核心知识进行一网打尽,包括三部分:基础知识考察、核心机制策略、性能优化策略,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 本篇Blog为第二部分:核心机制策略,子节点表示追问或同级提问 日志机制 关于MySQL的几…

【Web前端开发基础】CSS的结构伪类选择器、伪元素、浮动

CSS的浮动 目录 CSS的浮动一、学习目标二、文章内容2.1 结构伪类选择器2.2 伪元素2.3 标准流2.4 浮动2.5 清除浮动2.6 拓展(BFC) 三、综合案例3.1 小米模块案例3.2 网页导航案例 一、学习目标 能够使用结构伪类选择器在HTML中选元素能够说出标准流元素的…