*** 作步骤:
1、打开Unity,新建一个工程;
2、在场景中,新建一个“GameObject”,在其下再新建一个“Cube”和“Sphere”,适当调整页面的布局;
3、把“GameObject”下的子物体“Sphere”隐藏;
4、在工程中,新建一个脚本“GetChildTest”,双击脚本或者右键“OpenC#Project”打开脚本;
5、在“GetChildTest”脚本上编写代码,首先设置一个变量获取对象,然后在Update函数里按下“A”键,打印第一个子物体的名称,按下“S”键,打印第二个子物体的名称,并显示该物体;
6、脚本编译正确,回到Unity界面,把脚本赋给“GameObject”,并把“GameObject”赋给脚本对应变量;
9、运行场景,按下“A”“S”键,控制台console打印信息,并且“Sphere”显示就可以了。
Unity3d中GameObject对象可以包括其他子GameObject,并且本身包括多个Component.
1.GameObject.Find("myObject") or FindGameObjectByTag will search the scene for an object called myObject.
2. transform.Find("myObject") will only search the game objects children for an object called myObject.
3.GetComponent用来获取组件。
Transform Find(String name) Transform FindChild(String name)
查找名为name的(transform.gameObject)直接子物体并返回该子物体的Transform属性。不能是孙子物体或更低辈分的子物体。
2.可以在name中使用字符'\' 遍历整个路径。其中路径的根必须是transform.gameObject的直接子物体,不能是孙子物体或更低辈分的子物体。
这样就可以访问到以transform.gameObject为根的物体树,包括其子物体,孙子物体,曾孙物体。。。。
若Cube物体有一个直接子物体Cube1,Cube1有一个直接子物体Cube2,我们就可以在Cube的脚本中使用transform.Find("Cube1/Cube2")
或transform.FindChild("Cube1/Cube2")
这样就直接访问到了transform.gameObject的孙子物体Cube2。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)