You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中Dictionary<Vector3, GameObject>空引用异常求助

解决“对象未实例化”异常:Dictionary成员变量未初始化问题

问题核心原因很明确:你在类中声明的私有Dictionary<Vector3, GameObject> wallPositions是成员变量,但在Start()方法里又重新定义了一个同名局部变量,这直接导致成员变量从未被初始化——你在Start里做的初始化操作只作用于那个局部的Dictionary,而类的成员变量始终是null。

当你后续遍历HalfMaze的子物体,尝试给wallPositions赋值时,操作的是未初始化的成员变量(null),自然会抛出“对象未实例化”异常,这和grandchild.gameObject是否为空完全无关。

修复方案

删掉Start()方法里的Dictionary<Vector3, GameObject>类型声明,直接初始化类的成员变量:

// 类的成员变量声明
private Dictionary<Vector3, GameObject> wallPositions;

void Start()
{
    // 直接初始化成员变量,不要重新定义局部变量
    wallPositions = new Dictionary<Vector3, GameObject>();
    
    // 后续遍历HalfMaze子物体并赋值的代码...
}

这样后续操作的就是已完成实例化的成员变量,不会再触发空引用异常。

内容的提问来源于stack exchange,提问作者codingcultivator445

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:24:52