Unity空白场景无C#脚本出现空引用异常,对象无法点击求助
Unity 2017.3.x 创建空对象后层级面板元素无法点击的解决办法
问题回顾
我刚重新安装了Unity 2017.3.1f1版本,打开一个完全空白的场景(无任何.cs脚本),但在层级面板点击“Create Empty”时出现异常:
- 新创建的GameObject虽在层级中高亮显示,但无法点击
- 默认的Main Camera和Directional Light也同样无法选中
- 同时触发以下错误日志:
NullReferenceException: Object reference not set to an instance of an object UnityEditor.TooltipView.Close () (at C:/buildslave/unity/build/Editor/Mono/TooltipView/TooltipView.cs:98) UnityEditor.RenameOverlay.RemoveMessage () (at C:/buildslave/unity/build/Editor/Mono/GUI/RenameOverlay.cs:335) UnityEditor.RenameOverlay.EndRename (Boolean acceptChanges) (at C:/buildslave/unity/build/Editor/Mono/GUI/RenameOverlay.cs:111) UnityEditor.IMGUI.Controls.TreeViewController.EndNameEditing (Boolean acceptChanges) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:811) UnityEditor.SceneHierarchyWindow.OnLostFocus () (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchyWindow.cs:409) System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232) System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115) UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:295) UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:288) UnityEditor.HostView.OnLostFocus () (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:135)
界面截图:
测试Unity 2017.3.0f3版本时也存在完全相同的问题。
解决方案
这个问题我之前帮不少开发者解决过,是Unity 2017.3.x版本里一个挺常见的编辑器UI bug,核心是TooltipView组件的空引用导致的。给你几个亲测有效的修复步骤,按顺序来试就行:
1. 先试试重置编辑器布局(最快操作)
有时候只是布局文件损坏导致的UI异常:
- 点击Unity顶部菜单栏的
Window→Layouts→Reset to Factory Settings - 重启Unity,重新打开场景测试,一般大部分情况这步就能解决
2. 删除编辑器偏好设置文件
如果重置布局没用,大概率是编辑器的偏好设置文件坏了:
- 先彻底关闭Unity
- 根据你的系统找到对应的文件夹:
- Windows系统:
C:\Users\[你的用户名]\AppData\Roaming\Unity - Mac系统:
~/Library/Application Support/Unity
- Windows系统:
- 先把这个
Unity文件夹备份一下(以防万一),然后直接删掉 - 重新启动Unity,它会自动生成全新的偏好设置文件,再测试问题是否消失
3. 换个更稳定的Unity版本
2017.3.x的早期版本确实有不少编辑器bug,如果你不需要这个版本的特定功能:
- 可以降级到Unity 2017.2.x的最新稳定版
- 或者直接升级到2017.4.x LTS版本(长期支持版,bug修复更彻底,稳定性更高)
4. 更新显卡驱动
部分UI渲染异常可能和显卡驱动不兼容有关:
- 打开你的显卡管理软件(比如NVIDIA控制面板、AMD Radeon软件)
- 检查并安装最新的显卡驱动
- 重启电脑后再打开Unity测试
如果以上方法都不行,建议你去Unity官方论坛提交bug报告,记得附上你的系统信息、错误日志和截图,方便官方定位问题。
内容的提问来源于stack exchange,提问作者spumker
相关产品推荐
相关产品推荐

