Unity新编辑器(2018.3)引入了嵌套式预制件。有谁知道如何将预制件的子代分配给公共变量?
例如:
我有一条带有父GameObject的绳索,而孩子在所有关节上。
我想访问1个关节的刚体,因此我设置了一个公共游戏对象来访问它,但是我只能选择父对象而不是子对象或关节。
有人知道如何,还是有办法访问预制件的子对象?
例如:我的代码如下
public GameObject player;
Rigidbody2D rb;
void Start()
{
player = GameObject.FindGameObjectWithTag("Player");
rb = player.GetComponent<Rigidbody2D>();
Debug.Log(player.name);
}
im试图通过上述代码访问父游戏对象上的嵌套pres that,但即时获得了Null Reference Exception。我在做什么错了?
答案 0 :(得分:0)
我不知道我是否完全理解这个问题,但是我想我可以为您提供一些帮助。如果要访问GameObject或Joints组件中的Child,可以在here中进行操作。
还请注意,您要求的不是GameObject是GameObject [],而是其标记相同的所有GameObject的数组。确保您的GameObject标签是您所要的,然后将GameObject放入数组并要求第一个。
GameObject[] player = GameObject.FindGameObjectsWithTag("Player");
rb = player[0].transform.GetComponent<RigidBody>();
我希望它能帮上忙。
答案 1 :(得分:0)
所以我意识到我必须区别对待游戏对象和组件(对不起,我),所以我像下面那样设置了代码,这样我就可以抓住预制件的孩子了
void Start()
{
checkSleeping = false;
joint = player.transform.Find("Joint 0").gameObject;
jointRB = joint.GetComponent<Rigidbody2D>();
Debug.Log("Found Him");
}