【发布时间】:2020-10-01 19:47:50
【问题描述】:
我有一个我无法弄清楚的 UI 错误。我希望能够将我的乐谱带到每个场景中,同时也让每个场景彼此独立。如果玩家选择在第 6 级开始游戏,他应该能够使用干净的记分牌这样做,就像从第 1 级开始一样。分数应该继续进行转移,直到玩家死亡,此时分数应该被退回到 0。为此,我已经预制了我的记分牌,并使用单例模式将其放入每个场景中,以确保场景中没有重复的记分牌。在尝试使用 UnityEngine.UI 访问我的 Text 类型的乐谱文本 UI 时,在加载新场景后调用类时收到空引用错误。以下是定义用于在 Unity 2019.4.1f1 中实现我的层次结构的功能和屏幕 sn-ps 的方法的 C# 类。我还附上了一个简短的 youtube 视频,向您展示分数在第一个场景中确实有效,但在之后的任何其他场景中都无效。我确实知道,如果有多个场景,我会在每个场景开始时破坏 Text UI。我不明白为什么嵌套在记分板画布下的文本 UI 没有在 Awake() 上为每个创建的实例找到它的引用,以及为什么它被称为 null。我真的很感谢任何人的帮助!
以下是按顺序排列的屏幕快照和视频:
- Youtube 的 bug 视频
- 记分板画布的层次结构
- 乐谱文本的层次结构
- Scoreboard 单例类(附加到 Scoreboard Canvas)/ ScoreText 类(附加到 ScoreText UI)
- 在 CollisionHandler 类中实现用于在完成关卡时添加分数的类
Hierarchy of Scoreboard Canvas
CollisionHandler class used for implementation
如果这些没有帮助,这里是查看项目代码的 github 链接:
【问题讨论】: