如何动态地在 Unity 中的场景之间保持分数?

狄俄狄斯制作公司

我有一个无法弄清楚的 UI 错误。我希望能够将我的乐谱带到每个场景中,同时让每个场景彼此独立。如果玩家选择在第 6 级开始游戏,他应该能够使用干净的记分牌来进行,与从第 1 级开始相同。 分数应该继续转移直到玩家死亡,此时分数应该被退回到 0。为此,我预制了我的记分牌,并使用单例模式将其放入每个场景中,以确保场景中没有重复的记分牌。在尝试使用 UnityEngine.UI 访问我的 Text 类型的分数文本 UI 时,我在加载新场景后调用该类时收到空引用错误。以下是定义用于在 Unity 2019.4.1f1 中实现我的层次结构的功能和碎片片段的方法的 C# 类。我还附上了一个简短的 YouTube 视频,向您展示该乐谱在第一个场景中确实有效,但在之后的任何其他场景中都不起作用。我知道如果有多个场景,我会在每个场景开始时破坏文本 UI。我不明白的是为什么嵌套在记分板画布下的文本 UI 没有在 Awake() 上找到它对创建的每个实例的引用以及为什么它被称为 null。我真的很感谢任何人的帮助!如果有多个,则在每个场景开始时销毁文本 UI。我不明白的是为什么嵌套在记分板画布下的文本 UI 没有在 Awake() 上找到它对创建的每个实例的引用以及为什么它被称为 null。我真的很感谢任何人的帮助!如果有多个,则在每个场景开始时销毁文本 UI。我不明白的是为什么嵌套在记分板画布下的文本 UI 没有在 Awake() 上找到它对创建的每个实例的引用以及为什么它被称为 null。我真的很感谢任何人的帮助!

以下是按此顺序的屏幕片段和视频:

  1. 错误的 Youtube 视频
  2. 记分牌画布的层次结构
  3. 乐谱文本的层次结构
  4. Scoreboard 单例类(附加到 Scoreboard Canvas)/ ScoreText 类(附加到 ScoreText UI)
  5. 用于在 CollisionHandler 类中完成级别后添加分数的类的实现

用户界面错误视频

记分牌画布的层次结构

ScoreText 的层次结构

记分牌类

用于实现的 CollisionHandler 类

如果这些没有帮助,这里是 github 链接以查看项目代码:

Github 项目文件

杂草龙

至于为什么它不起作用,我不太确定。但是我可以告诉您一些解决方法:您可以尝试在 ScoreText 的脚本中创建 ScoreText 的公共静态实例。

public static ScoreText _instance;
public static ScoreText instance { get { return _instance; } }
private int score;
private Text scoreText;

    private void Awake()
    {
        if (_instance != null && _instance != this)
        {
            Destroy(this.gameObject);
        }
        else
        {
            _instance = this;
        }
    }

    void Start()
    {
        score = 0;
        scoreText.text = score.ToString();
    }

并通过以下方式访问其功能:

ScoreText.instance.AddToScore();

在我看来,它会更干净,更容易使用。如果您想进一步简化,您也可以在更新函数中更新 scoreText。但是由于您只在降落在这些绿色区域时添加积分,因此您的方式也很好。希望我能帮上忙。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Unity3D中动态地将GameObject在LineRenderer和空GameObject之间居中?

如何通过 Unity 中的 2 个场景共享分数

如何动态地在标签之间添加标签?

如何动态地设置网络中边缘的大小+ python

如何动态地从Firestore阵列中删除多个元素?

如何动态地在DropDownPicker中添加值React Native

如何动态地从pojo中获取字段

PHPExcel如何动态地在查询中设置WHERE值

如何动态地从熊猫数据框中过滤数据?

如何动态地根据列表中的字符串?

unity场景更改后如何重置分数?

如何在Unity中的场景之间传递数据

如何在Unity中的场景之间转移数据?

如何动态地将大小动态的UIButton插入UIStackView中?

如何使用PHP动态地在特定日期之间从openerp获取订单?

如何在Rails中动态地将作业放入队列中?

PHP:如何动态地从数组中输入选项卡中的值?

如何在计数的帮助下在 Laravel 中动态地在 <table> 中创建重复的 <tr>?

如何在猫鼬中动态地将值推入对象的属性中?

在C ++中,如何动态地从文件中创建一个类的多个对象?

DOM 操作:如何在 javascript DOM 中动态地从 json 数据列表中删除元素

如何在C中动态地在数组的最后位置插入元素?

Android:如何动态地将“自定义视图”添加到线性布局中

使用RappidJS如何动态地向渲染的模具中添加新元素

如何使用的layoutDirection动态地反映整个布局中的Android?

如何动态地在 vue 中的图像容器内附加一个 div?

如何动态地将数组添加到react-bootstrap表中?

如何在Android中动态地使用带有可滚动内容的固定标头?

如何动态地将小部件添加到Flutter中的列?