【UGUI】为射击游戏添加动态显示的分数和血量到UI界面

 

项目背景

在这个项目中,我们希望实现一个简单的游戏系统,其中玩家可以通过击中目标来获得分数,同时通过与怪物碰撞来减少血量。分数和血量需要在游戏界面上实时显示,以便玩家能够随时了解自己的状态。

技术实现
1. 静态变量的使用

在Unity中,静态变量是一种全局变量,可以在整个程序中共享。在本项目中,我们使用静态变量来存储分数和血量,这样可以在不同的脚本中方便地访问和修改这些数据。

public static int Score; // 记录分数
public static float Blood; // 记录血量
2. UI元素的设置

为了在界面上显示分数和血量,我们使用了TextMeshProUGUISlider组件。TextMeshProUGUI用于显示分数,Slider用于显示血量。

public TextMeshProUGUI ScoreUI; // 用于显示分数的UI文本组件
public Slider MyBloodUI; // 用于显示血量的滑动条组件
3. 初始化

Start方法中,我们对分数和血量进行了初始化,并将Slider的最大值设置为血量的初始值。

void Start()
{Score = 0; // 初始化分数为0Blood = 10000; // 初始化血量为10000MyBloodUI.maxValue = Blood; // 设置滑动条的最大值为血量的初始值
}
4. 更新UI

Update方法中,我们实时更新分数和血量的显示。分数通过TextMeshProUGUI显示,血量通过Slider显示。

void Update()
{Debug.Log("恭喜你击中目标!加分!" + Score); // 在控制台输出当前分数ScoreUI.text = Score.ToString(); // 将分数转换为字符串并显示在UI文本组件上MyBloodUI.value = Blood; // 将血量值设置为滑动条的当前值
}

5. 加分和减血的逻辑

为了实现加分和减血的功能,我们定义了两个静态方法AddScoreSubBlood。当玩家击中目标时,调用AddScore方法增加分数;当玩家撞到怪物时,调用SubBlood方法减少血量。

public static void AddScore()
{Score += 10; // 每次击中目标增加10分
}public static void SubBlood()
{Blood -= 100; // 每次撞到怪物减少100血量Debug.Log("减血了" + Blood); // 在控制台输出当前血量
}
完整代码示例

以下是完整的代码示例,每一行都加上了站在业务逻辑角度的注释:


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;public class ShScoreSystem : MonoBehaviour
{public static int Score; // 记录分数的全局静态变量public static float Blood; // 记录血量的全局静态变量public TextMeshProUGUI ScoreUI; // 用于显示分数的UI文本组件public Slider MyBloodUI; // 用于显示血量的滑动条组件void Start(){Score = 0; // 初始化分数为0Blood = 10000; // 初始化血量为10000MyBloodUI.maxValue = Blood; // 设置滑动条的最大值为血量的初始值}void Update(){Debug.Log("恭喜你击中目标!加分!" + Score); // 在控制台输出当前分数ScoreUI.text = Score.ToString(); // 将分数转换为字符串并显示在UI文本组件上MyBloodUI.value = Blood; // 将血量值设置为滑动条的当前值}public static void AddScore(){Score += 10; // 每次击中目标增加10分}public static void SubBlood(){Blood -= 100; // 每次撞到怪物减少100血量Debug.Log("减血了" + Blood); // 在控制台输出当前血量}
}

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

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

相关文章

使用Spring Boot搭建简单的web服务

1 引言 1.1 Spring Boot简介 Spring Boot是由Pivotal团队提供的一套开源框架,旨在简化Spring应用的创建及部署。 一、核心设计思想 Spring Boot的核心设计思想是“约定优于配置”(Convention Over Configuration,简称COC)。这…

「C/C++」C/C++标准库 之 #include<cstdlib> 通用工具函数库

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

CTF压缩包破解神器bkcrack教程和详细使用过程

kali安装bkcrack教程和详细使用过程 1.bkcrack介绍:2.bkcrack功能:3.bkcrack安装:Linux-Kali下:测试:Windows下安装: 4.bkcrack的使用方法:4.1查看相关参数4.2恢复内部密钥从 zip 档案中加载数据…

基于Python的乡村居民信息管理系统【附源码】

基于Python的乡村居民信息管理系统 效果如下: 系统主页面 系统登录页面 管理员主页面 居民管理页面 政务学习页面 土地信息管理页面 个人信息管理页面 居民登陆页面 村委人员主页面 研究背景 随着信息技术的飞速发展和乡村振兴战略的深入实施,传统的乡…

UI设计公司—兰亭妙微—提供轨道交通行业UI设计

蓝蓝设计工作室2008年开始,2011年正式成立北京兰亭妙微科技有限公司,主创清华团队,专注软件和互联网ui设计开发,擅长企业信息化管理、监控、大数据软件UIUE咨询和设计开发服务。立足UI,一直在学习进步。交通行业UE UI解…

2-Ubuntu/Windows系统启动盘制作

学习目标: 掌握使用Win32DiskImager、Rufus等工具制作系统启动盘的基本步骤。独立将ISO镜像文件写入USB闪存驱动器,确保在需要时顺利安装或修复系统。通过学习如何选择正确的源文件和目标驱动器,理解启动盘的使用场景和注意事项,…

Java项目管理与SSM框架介绍

Maven简介 Maven是一个项目管理工具。它可以帮助程序员构建工程,管理jar包,编译代码,完成测试,项目打包等等。Maven工具是基于POM(Project Object Model,项目对象模型)实现的。在Maven的管理下每…

数字证书的简单记录

CA(Certificate Authority):即数字证书颁发认证机构。 CA数字证书(crt/cer证书):数字证书 申请者与颁发者信息申请者公钥颁发者签名,由CA机构使用私钥签名得到数字证书。 CA中间证书&#xff1…

CGAL生成简单形状

三角形 四边形 立方体 六面体 棱柱 锥体 二十面体 网格 Polyhedron _mesh;/**************三角形************/CGAL::make_triangle(K::Point_3(100, 0, 0), K::Point_3(0, 100, 0), K::Point_3(0, 0, 0), _mesh);CGAL::IO::write_polygon_mesh("F:/WORK/STL/triangle.stl…

【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】题库(2)

前言 大家好吖,欢迎来到 YY 滴计算机网络 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考 欢迎订阅 YY滴其他专栏!…

江协科技STM32学习- P30 FlyMCU串口下载STLink Utility

🚀write in front🚀 🔎大家好,我是黄桃罐头,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝​…

【Python】【数据可视化】【商务智能方法与应用】课程 作业一 飞桨AI Studio

作业说明 程序运行和题目图形相同可得90分,图形显示有所变化,美观清晰可适当加分。 import matplotlib.pyplot as plt import numpy as npx np.linspace(0, 1, 100) y1 x**2 y2 x**4plt.figure(figsize(8, 6))# yx^2 plt.plot(x, y1, -., labelyx^2,…

提高后端接口性能的方法

个人bibilailai(不喜请跳过):前几天参加的部门技术分享会,同事分享了一个内容为“提高接口性能的常见技巧”,个人觉得很有用,所以想在这里分享给大家,希望对刚入职场不久的兄弟姐妹们有所帮助。…

.net Core 使用Panda.DynamicWebApi动态构造路由

我们以前是通过创建controller来创建API,通过controller来显示的生成路由,这里我们讲解下如何不通过controller,构造API路由 安装 Panda.DynamicWebApi 1.2.2 1.2.2 Swashbuckle.AspNetCore 6.2.3 6.2.3添加ServiceAction…

ETCD简介

ETCD etcd的使用场景默认处理的数据都是控制数据, 对于应用数据,只推荐数据量很小,但是更新访问频繁的情况 主要用于共享配置和服务发现的组件(激活码验证) 分布式键值(key-value)数据库 基于go语言实现 分布式系…

服务器新建用户

文章目录 前言一、步骤二、问题三、赋予管理员权限总结 前言 环境: 一、步骤 创建用户需要管理员权限sudo sudo useradd tang为用户设置密码 sudo passwd tang设置密码后,可以尝试使用 su 切换到 tang 用户,确保该用户可以正常使用&#…

【.NET 8 实战--孢子记账--从单体到微服务】--简易权限--接口路径管理

从这篇文章开始,我们将为孢子记账增加简易的权限系统,它包含接口路径管理、角色可访问接口管理、访问权限中间件。在本篇文章中我们先实现接口路径管理相关的接口。 一、需求 接口路径管理比较简单,需求和前面的 用户 以及 **角色**的需求类…

NVR监测软件/设备EasyNVR多品牌NVR管理工具/设备对城市安全有哪些具体益处?

在智慧城市的建设中,各种先进的技术系统正发挥着越来越重要的作用。其中,NVR监测软件/设备EasyNVR作为一种高效的视频边缘计算网关,不仅能够实现视频数据的采集、编码和存储,还能与其他智慧城市系统进行深度集成,共同推…

TCP建立连接之后怎么保持长连接(检测连接断没断)

在TCP连接建立后,保持长连接的主要方式是通过定期的心跳检测(Keep-Alive)和超时机制。以下是一些具体的方法和机制 1. TCP Keep-Alive TCP协议本身提供了一种Keep-Alive机制,可以通过以下步骤实现: 启用Keep-Alive&…

速盾:海外cdn高防

随着互联网的快速发展,网站的安全性和稳定性变得越来越重要。尤其是对于大型企业和电商平台来说,保护用户数据和维护网站稳定运行是至关重要的。为了应对日益增长的网络攻击和恶意访问,海外CDN高防服务成为了一种非常受欢迎的解决方案。 首先…