1.添加tagGameObject obj = GameObject.FindWithTag("Player");
仅适用于tag场景中只有一个player tag时,若场景中有多个player tag,也只返回一个(场景中你最后创建的那个游戏物体) 注意:无论运行该函数的游戏物体处于哪个父子层级,也无论目标tag处于哪个父子层级均能正常找到(遍历所有游戏物体) 2.GameObject.FindGameObjectsWithTag GameObject[] objs = GameObject.FindGameObjectsWithTag("Player");
foreach (GameObject obj in objs)
{
Debug.Log(obj.name);
}
查找所有目标tag的游戏物体 3.transform.find Transform t = transform.Find("3");
Debug.Log(t.name);
注意:该函数只能查找运行该函数的游戏物体下的子物体 4.GetComponentsInChildren<>()4.1.GetComponentsInChildren<Transform>() public Transform[] transforms;
private void Start()
{
test_4();
}
public void test_4()
{
GameObject obj = GameObject.FindWithTag("Player");
transforms = obj.GetComponentsInChildren<Transform>();
}
 
注意:其中1的tag为player,GetComponentsInChildren<Transform>()包含自身的transform 4.2GetComponentsInChildren<test>() public test[] transforms;
private void Start()
{
test_4();
}
public void test_4()
{
GameObject obj = GameObject.FindWithTag("Player");
transforms = obj.GetComponentsInChildren<test>();
}
  注意:1的tag为player,1与3-2与2-3没有挂载test脚本
总结:GetComponentsInChildren<>()包含自身的Component 5.遍历所有子物体(包含孙物体) GameObject obj = GameObject.FindWithTag("Player");
transforms = obj.GetComponentsInChildren<Transform>();
test_6(obj.transform);
public void test_6(Transform transform)
{
foreach (Transform t in transform.GetComponentsInChildren<Transform>())
{
Debug.Log(t.name);
}
}

 注意:这里包含了1这个游戏物体 6.遍历所有子物体(不包括孙物体) GameObject obj = GameObject.FindWithTag("Player");
transforms = obj.GetComponentsInChildren<Transform>();
test_7(obj.transform);
public void test_7(Transform transform)
{
foreach (Transform t in transform)
{
Debug.Log(t.name);
}
}
  7.正确的Destroy()销毁游戏物体的方式 GameObject obj = GameObject.FindWithTag("Player");
transforms = obj.GetComponentsInChildren<Transform>();
test_8(obj.transform);
public void test_8(Transform transform)
{
List<GameObject> lst = new List<GameObject>();
foreach(Transform t in transform)
{
lst.Add(t.gameObject);
}
for (int i = 0; i < lst.Count;i++)
{
Destroy(lst[i]);
}
}
 注意:某些时候也可以使用 foreach(Transform t in transform)
{
Destroy(t.gameObject);
}
8.判断一个游戏物体下是否有子物体if(transform.childCount > 0)
|