Unity上传建筑至Somnium Space时出现NullReferenceException异常求助
上传Somnium Space建筑3D模型时触发NullReferenceException异常的排查与解决
问题详情
上传符合要求的建筑3D模型至Somnium Space元宇宙时,触发NullReferenceException异常,异常堆栈信息如下:
NullReferenceException: Object reference not set to an instance of an object SomniumSpace.SDK.BundleObject.BuildingItemConfig.CheckLongAnimations () (at <31ae435ac6e84dfca802585535e9fd62>:0) SomniumSpace.SDK.EditorSDK.AssetBundleConfig.BuildingItemConfigEditor.BuildAndUploadWindow () (at <6e520e0a729e4ab185bc8870b44402c3>:0) SomniumSpace.SDK.EditorSDK.AssetBundleConfig.AssetBundleConfigEditorBase`1[T].CheckBundlesLimit (SomniumSpace.SDK.DTO.BundleCountValidationDTO countValidation) (at <6e520e0a729e4ab185bc8870b44402c3>:0) SomniumSpace.SDK.EditorSDK.AssetBundleConfig.AssetBundleConfigEditorBase`1[T].CheckBundlesLimitSuccess (System.String successResponse) (at <6e520e0a729e4ab185bc8870b44402c3>:0) SomniumSpace.SDK.Managers.NetworkManager+<>c__DisplayClass5_1.<CreateGetRequest>b__1 (UnityEngine.AsyncOperation asyncOperation) (at <31ae435ac6e84dfca802585535e9fd62>:0) UnityEngine.AsyncOperation.InvokeCompletionEvent () (at C:/buildslave/unity/build/Runtime/Export/Scripting/AsyncOperation.cs:21)
操作界面截图:
原因分析
从堆栈信息看,异常起源于BuildingItemConfig.CheckLongAnimations()方法,说明在检查模型动画时长的逻辑中存在未初始化的对象引用,可能关联以下场景:
- 模型的动画组件(如Animator)存在空引用的资源(未赋值的动画控制器、已丢失的动画剪辑)
- BuildingItemConfig配置项中,与动画相关的必填字段未填写或为空
- AssetBundle缓存中存在损坏的资源,导致加载时出现空引用
- 网络请求返回的BundleCountValidationDTO数据包含空字段,后续处理时触发异常
解决方法
- 检查动画资源完整性:打开Unity项目,逐一检查模型上的Animator组件,确保动画控制器、动画剪辑均已正确赋值,没有红色缺失的引用;删除未使用的空动画组件。
- 验证BuildingItemConfig配置:在SDK的配置窗口中,核对所有与建筑模型相关的配置项,尤其是动画时长、动画资源关联的字段,确保无空值或无效设置。
- 清理并重建AssetBundle:删除项目中旧的AssetBundle输出文件,清理Unity缓存(
Edit > Clear All Cache),重新打包模型资源后再尝试上传。 - 排查网络请求状态:确认网络连接稳定,Somnium Space的API服务可正常访问;若使用代理需检查代理设置是否影响请求返回。
- 更新SDK版本:如果当前使用的Somnium Space SDK不是最新版,下载并替换为官方最新SDK,修复已知的空引用bug。
内容的提问来源于stack exchange,提问作者ruthless_66
相关产品推荐
相关产品推荐

