Unity Item类构造函数报NullReferenceException空引用异常问题求助
问题根因定位
你遇到的NullReferenceException报错指向Item类构造函数的第25行,本质原因是调用new Item(ItemObject item)构造Item实例时,传入的item参数为null,构造函数内部访问item.name、item.Id时触发了空引用。
修复方案
- 第一步:新增空校验拦截异常
在Item构造函数内先做参数合法性校验,避免直接访问空对象,同时可以打印调试信息定位调用来源:public Item(ItemObject item) { if (item == null) { Debug.LogError("传入Item构造函数的ItemObject参数为空,请检查调用逻辑"); return; } Name = item.name; Id = item.Id; } - 第二步:排查参数为空的来源
从以下常见场景逐一排查:- 若你是在编辑器面板拖拽赋值ItemObject,检查对应变量是否未赋值就运行
- 若你是通过
Resources.Load、Addressables等API动态加载ItemObject,确认资源路径/寻址地址正确,加载完成后判断返回值不为空再传入构造函数 - 若你是代码动态生成ItemObject,确认已经走完
ScriptableObject.CreateInstance<ItemObject>()初始化逻辑再传入构造函数
快速调试技巧
你可以在构造函数的空判断处加断点,运行游戏触发报错时查看调用栈,直接定位到是哪一行代码传入了空的ItemObject参数,即可精准修复问题。
内容的提问来源于stack exchange,提问作者Burhan Ahmad
相关产品推荐
相关产品推荐

