C# 无法使用局部变量';hitInfo';在宣布之前
在将我的项目更新到unity3d的最新版本后,我遇到了这个错误 错误CS0841:在声明局部变量“hitInfo”之前,无法使用该变量 "C# 无法使用局部变量';hitInfo';在宣布之前,c#,unity3d,C#,Unity3d,在将我的项目更新到unity3d的最新版本后,我遇到了这个错误 错误CS0841:在声明局部变量“hitInfo”之前,无法使用该变量 " if(Physics.Linecast(head.position,vector,out-hitInfo,sphereSensor.obstaclayer)和Physics.Linecast(head.position,vector2,out-hitInfo,sphereSensor.obstaclayer)和Physics.Linecast(head.po
if(Physics.Linecast(head.position,vector,out-hitInfo,sphereSensor.obstaclayer)和Physics.Linecast(head.position,vector2,out-hitInfo,sphereSensor.obstaclayer)和Physics.Linecast(head.position,colliderTarget.bounds.center,out-raycashit-hitInfo,sphereSensor.obstaclayer))
代码有什么问题?您必须在您的条件中更早地声明(类型variableName
),因为它们是从左到右计算的,然后,在第一个条件下(physical.Linecast(head.position,vector,out hitInfo,sphereSensor.obstaclayer)
)变量hitInfo
还不存在
将代码更改为:
// Notice this ---------------------------------v--------v
if (Physics.Linecast(head.position, vector, out RaycastHit hitInfo, sphereSensor.obstacleLayer)
&& Physics.Linecast(head.position, vector2, out hitInfo, sphereSensor.obstacleLayer)
&& Physics.Linecast(head.position, colliderTarget.bounds.center, out hitInfo, sphereSensor.obstacleLayer))
// Type was removed there -------------------------------------------^
或在以下情况之前声明变量:
RaycastHit hitInfo;
if (Physics.Linecast(head.position, vector, out hitInfo, sphereSensor.obstacleLayer)
&& Physics.Linecast(head.position, vector2, out hitInfo, sphereSensor.obstacleLayer)
&& Physics.Linecast(head.position, colliderTarget.bounds.center, out hitInfo, sphereSensor.obstacleLayer))
只是想知道:hitInfo更新了多少次?通过哪个电话?你是对的@Cid谢谢,我没有注意到。现在修好了。谢谢,C#7推出后会有变化。