我试图在离开时在另一个对象(称为腔室)中设置一些变量。但是我似乎无法从场景中的许多特定对象中访问该脚本。我收到“未设置为对象的实例”错误。
请注意,参议员通过ID(整数)和名称(字符串)“知道”他所在的房间。商会还“知道”那里有一位参议员,但谁也不知道。我需要在参议员对象离开时清理房间,但是我无法控制该特定房间的脚本。
编码如下:
// Do Work
rbSenator.transform.position = newPos;
Senator senatorSc = rbSenator.GetComponent<Senator>();
originChamberName = senatorSc.GetInChamber();
goChamber = GameObject.Find(originChamberName);
Chamber originSc = goChamber.GetComponent<Chamber>(); //******************************** error
originSc.FreeSeat(originChamber, senatorSeat);
// Do Work
答案 0 :(得分:0)
您可能是任务rbSenator GameObject。 让我知道您是否正在通过检查器分配rbSenator GameObject? 如果是,则在运行时检查Inspector中的rbSenator字段。 注意:在运行时,有时团结会导致字段为空。
答案 1 :(得分:0)
如果只有一个房间是该对象的孩子,则可以使用GetComponentInChildren<TypeOfYourRoom>()
如果有多个,则使用for循环查找您想要的名称或名称