C# 布尔NullReferenceException
Unity3d 我得到了与ifraytest相关的错误。obstacleExists==true 以下是主要脚本:C# 布尔NullReferenceException,c#,unity3d,C#,Unity3d,Unity3d 我得到了与ifraytest相关的错误。obstacleExists==true 以下是主要脚本: private Raytest raytest; void Start() { target = new Vector3(5f, 0f, 0f); obTarget = new Vector3(obstacle.transform.position.x - 1.3f, 0f, 0f); raytest = GetComponent<Raytest&g
private Raytest raytest;
void Start()
{
target = new Vector3(5f, 0f, 0f);
obTarget = new Vector3(obstacle.transform.position.x - 1.3f, 0f, 0f);
raytest = GetComponent<Raytest>();
}
public void Movement()
{
float step = speed * Time.deltaTime;
//if there is an obstacle ahead
//stop 1-2 meters before him
//else
//go to target position
if(runCode==true)
{
if(raytest.obstacleExists==true)
{
transform.position = Vector3.MoveTowards(transform.position, obTarget, step);
}
else
{
transform.position = Vector3.MoveTowards(transform.position, target, step);
}
}
}
有人知道为什么会发生这种情况吗?光线测试似乎没有实例化。检查变量是否为null
if(raytest?.obstacleExists==true)
{
transform.position = Vector3.MoveTowards(transform.position, obTarget, step);
}
没有布尔空引用,因为@00110001提到的布尔是一种值类型,所以不能得到布尔空引用异常,问题可能是你的私有Raytest Raytest;未实例化或引用任何对象。您可能需要提供有关错误的更多信息,因为很难找出我们的codeGetComponent的确切问题所在。如果游戏对象附加了一个组件,则返回类型为Type的组件;如果没有,则返回null。