问题描述
我在 Visual Studio 2015 和 C# 中使用 unity,每当我使用这样的东西时:
if (!NavMesh.SamplePosition(position,out NavMeshHit hit,1f,NavMesh.AllAreas)) { return; }
或者这个
if (!Physics.Raycast(ray,out RaycastHit hit,Mathf.Infinity)) { return; }
对于 RaycastHit hit
或 NavMeshHit hit
以及之后使用 hit
的地方,我收到编译时错误警告。
如果我将它声明为局部变量,错误就会消失
NavMeshHit hit;
if (!NavMesh.SamplePosition(position,out hit,NavMesh.AllAreas)) { return; }
RaycastHit hit;
if (!Physics.Raycast(ray,Mathf.Infinity)) { return; }
或者按 Ctrl + .
然后按 Esc
取消它,错误就会消失,即使它没有,它也只是编译正常并进入运行时没有问题。
解决方法
这是 Visual Studio 2015 中不可用的 C# 7 功能,您必须升级到 2017 或忽略它。
编辑:最后使用了 Visual Studio Code,因为对我来说 Visual Studio 2017 太大了,50GB,而 2015 年只有 9GB