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); // 在控制台输出当前血量
}
}
热门推荐
小说数据库用什么字段查找
CNS情绪鱼油:青少年抑郁症的营养补充新选择
鱼油补充剂在类风湿性关节炎治疗中的新进展
鱼油竟是中医养骨神器?
蛇年春联创意文案大集合
社交技能提升与实践技巧:成为社交高手的必备指南
HDMI vs DisplayPort:科技公司如何选择最佳显示接口?
VGA vs DP:接口大战谁主沉浮?
异地恋中的信任危机,你怎么看?
异地恋如何保持甜蜜?心理专家支招
利培酮口服溶液:正确服用指南
李彦宏坐镇春晚VIP小圆桌,揭秘观众经济背景
央视春晚:观众来源的社会学解析
比利时杨森公司揭秘:利培酮的神奇功效
利培酮 vs 奥氮平:精神分裂症治疗的药物选择
国学经典扇子DIY,古风爱好者的福音!
Komorebi Uchiwa:传统扇艺的诗意新生
羽扇纶巾,团扇画意:传统扇子的魅力
在快节奏生活中探索内心迷茫与焦虑的真正原因
走出职场迷茫,突破“花盆效应”
石友三:北伐战争中的“倒戈将军”
时代少年团楼间楼双人小卡扫图活动引爆社交媒体
一天一个鸭蛋降血糖吗?一文给你解答
血糖高的人能吃鸭蛋吗?
互动技术引领纺织非遗展厅新风尚,传统工艺魅力再升级!
小刘教你和平精英四指键位设置
谢娜《酱园弄》演技遭质疑,这次她能证明自己吗?
亿粉女王谢娜:舞台表演的秘诀与争议
谢娜:从主持人到演员,在争议中成长的“太阳女神”
搞笑奥特曼游戏排行榜:你最爱哪一款?