当前位置: 首页 > article >正文

Unity 2D实战小游戏开发跳跳鸟 - 记录显示最高分

上一篇文章中我们实现了游戏的开始界面,在开始界面中有一个最高分数的UI,本文将接着实现记录最高分数以及在开始界面中显示最高分数的功能。


添加跳跳鸟死亡事件

要记录最高分,则需要在跳跳鸟死亡时去进行判断当前的分数是否是最高分,如果是最高分则进行记录,如果低于之前的最高分则不进行记录。

首先需要实现的就是在跳跳鸟死亡的时候触发一个死亡的事件,用来作为判断最高分的时机,在BirdController类里实现即可,并将当前的BirdController作为参数通过事件传出去,代码如下。

public event Action<BirdController> OnBirdDied;

private void OnCollisionEnter2D(Collision2D other)
{
    if (other.gameObject.CompareTag("Obstacle"))
    {
        var deathEffect = Instantiate(_birdDeathEffect, transform.position, Quaternion.identity);
        Destroy(deathEffect, 1f);

        //跳跳鸟死亡时,调用跳跳鸟死亡事件        
        OnBirdDied?.Invoke(this);

        Destroy(gameObject);
    }
}

将之前跳跳鸟死亡后隐藏的方法删除,并在调用跳跳鸟死亡事件后销毁掉该跳跳鸟。

获取当前的分数

在GameScoreManager中,将之前的私有变量_currentScore替换为一个外部只读,内部可修改的属性供后续判断最高分逻辑时使用,代码如下。

public int CurrentScore { get; private set; }

public void ResetScore()
{
    CurrentScore = 0;
    _scoreText.text = CurrentScore.ToString();
}

private void HandleOnAddScore()
{
    CurrentScore+

http://www.kler.cn/a/533505.html

相关文章:

  • SGlang 专为大模型设计的高效服务框架
  • 【Git】一、初识Git Git基本操作详解
  • 飞行汽车中的无刷外转子电机、人形机器人中的无框力矩电机技术解析与应用
  • 深度求索DeepSeek横空出世
  • 巧妙利用数据结构优化部门查询
  • 北京门头沟区房屋轮廓shp的arcgis数据建筑物轮廓无偏移坐标测评
  • leetcode——子集(java)
  • Python实现CAN FD 通信(基于PCAN开发CAN FD测试工具)
  • vue3新建组件库项目并上传到私库
  • 实时波形与频谱分析———傅立叶变换
  • RabbitMQ深度探索:消息幂等性问题
  • MongoDB 查询文档
  • 哈夫曼树原理及其C语言实现
  • 时间对象管理相关
  • gesp(C++六级)(13)洛谷:P11375:[GESP202412 六级] 树上游走
  • 因果推断与机器学习—可解释性、公平性和因果机器学习
  • go运算符
  • Redis缓存穿透、击穿、雪崩介绍以及解决方案
  • vscode 设置在编辑器的标签页超出可视范围时自动换行(workbench.editor.wrapTabs)
  • SpringBoot 基于个性化定制的智慧校园管理系统设计与开发 - 论文、开题报告
  • 搭建Python环境:为量化交易做准备
  • Linux之安装MySQL
  • Oh3.2项目升级到Oh5.0(鸿蒙Next)具体踩坑记录二
  • 正则表达式详细介绍
  • 题解:洛谷 P1744 采购特价商品
  • 算法随笔_39: 最多能完成排序的块_方法2