柰茶 2024-05-02 13:56 采纳率: 50%
浏览 74
已结题

unity——Canvas绑定的脚本上挂载了游戏对象但仍为空

这是一个代码脚本命名为ChatHandler.cs,声明了几个GameObject对象

在这里插入图片描述


这个ChatHandler.cs脚本挂载在Canvas画布上,并且脚本绑定的游戏对象就是Canvas下的子对象

在这里插入图片描述


脚本上已经挂了对象为何实际在ChatHandler.cs的代码里打印这几个对象仍输出为空

在这里插入图片描述


在这里插入图片描述


为什么会这样?

  • 写回答

5条回答 默认 最新

  • 专家-皆知 2024-05-02 13:56
    关注

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    看起来你在尝试访问ChatHandler脚本中的公共游戏对象(GameObjects),但它们在运行时被打印为null,这表明这些引用没有正确地连接到场景中的相应游戏对象。为了调试这个问题,我们可以按照以下步骤操作:

    1. 检查Unity编辑器中的Inspector面板,确保每个公共变量(如chatBackgroundchatName等)都已正确地拖动了相应的游戏对象到对应的字段。

    2. 确保在脚本中引用变量的方式是正确的。在代码中,你应该使用驼峰命名法(CamelCase)而不是下划线分隔符(例如,将chat Tap改为chatTap)。

    3. 检查脚本是否已经附加到了Canvas上。在Unity编辑器中,找到你的Canvas对象,然后检查其组件列表中是否有ChatHandler脚本。

    4. 确保在启动(Start)方法之外的地方没有尝试访问这些未初始化的变量。有时候,如果你在Start方法之前就尝试访问这些变量,可能会导致它们仍然是null

    5. 如果以上步骤都无法解决,那么可能是脚本实例化的问题。确认不是在不包含所需游戏对象的其他地方创建了脚本的实例。

    根据你提供的信息,我建议首先在Unity编辑器中检查 Inspector 面板,确保所有游戏对象引用都已经正确设置。如果问题仍然存在,请提供更详细的项目结构和错误消息,以便我能进一步协助你定位问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 5月10日
  • 已采纳回答 5月2日
  • 创建了问题 5月2日