Unity游戏开发:为射击游戏添加动态显示的分数和血量
创作时间:
作者:
@小白创作中心
Unity游戏开发:为射击游戏添加动态显示的分数和血量
引用
CSDN
1.
https://m.blog.csdn.net/leoysq/article/details/143427860
在这个项目中,我们希望实现一个简单的游戏系统,其中玩家可以通过击中目标来获得分数,同时通过与怪物碰撞来减少血量。分数和血量需要在游戏界面上实时显示,以便玩家能够随时了解自己的状态。
技术实现
1. 静态变量的使用
在Unity中,静态变量是一种全局变量,可以在整个程序中共享。在本项目中,我们使用静态变量来存储分数和血量,这样可以在不同的脚本中方便地访问和修改这些数据。
public static int Score; // 记录分数
public static float Blood; // 记录血量
2. UI元素的设置
为了在界面上显示分数和血量,我们使用了 TextMeshProUGUI
和 Slider
组件。TextMeshProUGUI
用于显示分数,Slider
用于显示血量。
public TextMeshProUGUI ScoreUI; // 用于显示分数的UI文本组件
public Slider MyBloodUI; // 用于显示血量的滑动条组件
3. 初始化
在 Start
方法中,我们对分数和血量进行了初始化,并将 Slider
的最大值设置为血量的初始值。
void Start()
{
Score = 0; // 初始化分数为0
Blood = 10000; // 初始化血量为10000
MyBloodUI.maxValue = Blood; // 设置滑动条的最大值为血量的初始值
}
4. 更新UI
在 Update
方法中,我们实时更新分数和血量的显示。分数通过 TextMeshProUGUI
显示,血量通过 Slider
显示。
void Update()
{
Debug.Log("恭喜你击中目标!加分!" + Score); // 在控制台输出当前分数
ScoreUI.text = Score.ToString(); // 将分数转换为字符串并显示在UI文本组件上
MyBloodUI.value = Blood; // 将血量值设置为滑动条的当前值
}
5. 加分和减血的逻辑
为了实现加分和减血的功能,我们定义了两个静态方法 AddScore
和 SubBlood
。当玩家击中目标时,调用 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; // 初始化分数为0
Blood = 10000; // 初始化血量为10000
MyBloodUI.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); // 在控制台输出当前血量
}
}
热门推荐
探秘张家界武夷山:深度游攻略与秘境探险指南
决明子和菊花茶的主治功能(菊花和它是绝配!降火除秋燥,养肝明目又润肠~)
八岁孩子舌苔厚白是怎么回事
商铺买卖所需缴纳的各项税费及法律规定
农村房屋过户给子女需要到哪里办
农村房屋继承规定:了解继承权益与限制
人工智能的伦理规范
长城Hi4-Z技术解析:解耦电四驱的全新突破
小升初分班考试有什么技巧
八字命理中的十神:它们如何影响个人命运
婺源徒步1日游:从理坑到官坑的徽饶古道之旅
香烟有保质期吗?一包烟放两年了,还能抽吗?今天告诉你答案!
死面、发面、烫面、半烫面、半发面的区别和用途
锻炼身体治咽喉炎
国企人力资源怎么跳槽快
2024年广州市重点产业规划布局全景图谱:低空经济与未来产业齐头并进
鸡蛋和蛋白粉可以一起吃吗?适合哪些人吃?
骨灰无人认领司法解释下的继承法与行政诉讼法探析
如何有效关闭或卸载McAfee杀毒软件的详细指南
四季香氛指南:如何根据季节更替选择完美后调香水
黑芝麻:从传统中药到现代医学研究
委托他人买卖房屋怎么办公证
针灸如何缓解颈椎病
买卖合同纠纷的调解与仲裁
国际期货市场价格波动分析及对投资决策的影响
靖难之役后,朱标的后代下场有多惨?这你知道吗?
考古新发现!上山遗址陶器残片揭示万年前稻米酿酒技术
全球首个开创性新癌症治疗方案通过同行评审!
高中生兼职日结有哪些?分享2025年最新的学生兼职项目
《骆驼祥子》:刘四爷很欣赏祥子,为何不愿意成全虎妞和祥子的婚事?