Unity3d Unity:GetComponent的NullReferenceException

Unity3d Unity:GetComponent的NullReferenceException,unity3d,unity5,nullreferenceexception,unityscript,Unity3d,Unity5,Nullreferenceexception,Unityscript,我试图在Awake()函数中访问一个脚本类(AimRotation),以获取用户输入变量,但只得到一个NullReferenceException。我确保游戏对象不为空,并且AimRotation脚本已附加到对象 令人沮丧的是,我的脚本已经运行得很好了,但由于异常突然停止了工作。我不记得在代码中更改了什么,但我不能100%确定;我唯一能确定的是,这件事发生在我和动画师闲逛之后(动画师既不访问游戏对象也不访问AimRotation类)。我不确定我还能提供更多的信息 编辑: 重新启动Unity后,N

我试图在Awake()函数中访问一个脚本类(AimRotation),以获取用户输入变量,但只得到一个NullReferenceException。我确保游戏对象不为空,并且AimRotation脚本已附加到对象

令人沮丧的是,我的脚本已经运行得很好了,但由于异常突然停止了工作。我不记得在代码中更改了什么,但我不能100%确定;我唯一能确定的是,这件事发生在我和动画师闲逛之后(动画师既不访问游戏对象也不访问AimRotation类)。我不确定我还能提供更多的信息

编辑: 重新启动Unity后,NullReferenceException消失。然而,我仍然不知道是什么首先引发了异常

下面是一些代码:

控制器中的唤醒功能:

受保护列表rotObjs;
无效唤醒()
{
rotObjs=新列表();
GameObject[]rotationObjects=GameObject.FindGameObjectsSwithTag(“旋转”);
GameObject[]rotationObjects2=GameObject.FindGameObjectsSwithTag(“Rotation2”);
对于(int i=0;i

获取
AimRotation
组件时,数组名称出现错误

for (int i = 0; i < rotationObjects2.Length; i++)
{
    AimRotation aimRot = rotationObjects2[i].GetComponent<AimRotation>(); // was rotationObjects[i]
    rotObjs.Add(new RotationObject(rotationObjects2[i], aimRot.getClampFactor(), aimRot.getRotationOffset()));
}
for(int i=0;i
你赢了我,哈哈。我想你应该加一句话,哈哈哈。你不会相信的,但这帮我节省了很多时间。在我重新启动Unity后,NullReferenceException不知怎么消失了。但是我想知道为什么我的轮换没有正确应用。谢谢你!如果你的问题通过此解决方案。解决了一个问题。但我仍然在代码中的同一位置遇到随机NullReferenceException。这可能是由于我的代码不好,但可能有人知道更多?可能是重复的