繁体   English   中英

如何在选定的GameObject下方获取GameObject的脚本? (Unity2D)(C#)

[英]How do I get the script of a GameObject underneath my selected GameObject? (Unity2D) (C#)

我试图在离开时在另一个对象(称为腔室)中设置一些变量。 但是我似乎无法从场景中的许多特定对象中访问该脚本。 我收到“未设置为对象的实例”错误。

请注意,参议员通过ID(int)和名称(字符串)“知道”他所在的房间。 商会还“知道”那里有一位参议员,但谁也不知道。 当参议员对象离开时,我需要清理暗室,但是我无法控制该特定暗室的脚本。

编码如下:

  // 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 

您可能是任务rbSenator GameObject。 让我知道您是否正在通过检查器分配rbSenator GameObject? 如果是,则在运行时检查Inspector中的rbSenator字段。 注意:在运行时,有时团结会使字段为空。

如果只有一个房间是您对象的子级,则可以使用GetComponentInChildren<TypeOfYourRoom>()如果有多个GetComponentInChildren<TypeOfYourRoom>() ,请使用for循环查找您想要的房间,其名称或其他内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM