unity3d 如何获取一个子对象,如何获得并更改在一个模型里面的子对象的属性的值。

例如abc.abc.abc.abc.renderer.material.mainTexture= picture.texture;

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。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
transform.FindChild("子物体名字").GetComponent<组件的类型>().属性名 = 目标值; 或者 gameObject.GetComponentInChildren<组件的类型>().属性名 = 目标值;本回答被提问者采纳
第2个回答  2017-10-11
transform.FindChild("子物体名字").GetComponent<组件的类型>().属性名 = 目标值; 或者 gameObject.GetComponentInChildren<组件的类型>().属性名 = 目标值;
相似回答