c# - 将选定的 TextAsset 分配给新的 TextAsset 变量(Unity、C#)
问题描述
我正在为我的文本游戏开发一项功能,该功能将使玩家从一个场景(主菜单)中选择他想通过按钮玩什么级别,并且有关他选择的信息将传递到特定的下一个场景(游戏场景) TextAsset 将加载。
代码:
foreach (TextAsset d in DeckList)
{
if (d.name == CurrentDeckText)
{
questions = GetFile(d);
}
}
目前,我已在游戏场景开始时将所有级别的所有文本(效率低,我知道)加载为 TextAssets,并将它们全部放入列表(DeckList)中。当我单击主菜单中的按钮时,代码会传递级别的字符串名称(CurrentDeckText)。然后将级别的名称与加载的级别列表中的 TextAssets 的名称进行比较。如果匹配,则应进一步处理所选级别。
问题在于最后一步。Unity 向我抛出此错误 NullReferenceException: Object reference not set to an instance of an object Core.Start () (at Assets/Scripts/Core.cs:172)
我检查了:
- d.name 和 CurrentDeckText 都是字符串并且它们匹配
- 所有文本都加载到 DeckList
- question = GetFile("name of level") 当我将单个级别硬编码到其中时工作正常
我不知道有什么问题。我怀疑有一些我没有看到的微不足道的东西。你能帮我吗,互联网?
解决方案
所以我找到了一种解决方法 - 我没有将字符串与级别名称匹配,而是将列表中的索引与级别名称匹配,而不是实际名称,我将级别按钮命名为 0,1,2,3,.. 并将其传递给当前甲板文本。
不知道为什么它会起作用,但确实如此。
推荐阅读
- javascript - Jquery分配输入值但表单提交时为空
- javascript - 在突出显示的元素上添加类?
- spring-boot - Springbook 2.0 拦截器转发到控制器
- webrtc - WebRTC 客户端会与仅支持通道而不支持数据/发送机制的 TURN 服务器一起使用吗?
- azure - ARM 模板部署的函数应用没有主机密钥并引发错误
- go - 由 go-side 服务器关闭的 gRPC 套接字
- javascript - 列表项上存在关键道具,但仍收到关键警告
- c# - Newtonsoft.Json 反序列化不会覆盖构造函数中设置的属性
- excel - 在所有打开的 Excel 文件中运行宏
- opengl - 如何知道我们何时在片段着色器中有纹理