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

例如abc.abc.abc.abc.renderer.material.mainTexture=picture.texture;... 例如abc.abc.abc.abc.renderer.material.mainTexture= picture.texture; 展开
 我来答
so廓然无累
2018-03-31 · TA获得超过466个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

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)

  1. 查找名为name的(transform.gameObject)直接子物体并返回该子物体的Transform属性。不能是孙子物体或更低辈分的子物体。

  2. 2.可以在name中使用字符'\' 遍历整个路径。其中路径的根必须是transform.gameObject的直接子物体,不能是孙子物体或更低辈分的子物体。

  3. 这样就可以访问到以transform.gameObject为根的物体树,包括其子物体,孙子物体,曾孙物体。。。。

  4. 若Cube物体有一个直接子物体Cube1,Cube1有一个直接子物体Cube2,我们就可以在Cube的脚本中使用transform.Find("Cube1/Cube2");

  5. 或transform.FindChild("Cube1/Cube2");  

这样就直接访问到了transform.gameObject的孙子物体Cube2。

水_清_浅_
推荐于2017-11-26 · TA获得超过127个赞
知道答主
回答量:17
采纳率:0%
帮助的人:11.8万
展开全部
transform.FindChild("子物体名字").GetComponent<组件的类型>().属性名 = 目标值; 或者 gameObject.GetComponentInChildren<组件的类型>().属性名 = 目标值;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
雪V歌
2017-10-11 · 知道合伙人数码行家
雪V歌
知道合伙人数码行家
采纳数:78698 获赞数:222934
泉州兴瑞发公司2015-2017最佳优秀员工。

向TA提问 私信TA
展开全部
transform.FindChild("子物体名字").GetComponent<组件的类型>().属性名 = 目标值; 或者 gameObject.GetComponentInChildren<组件的类型>().属性名 = 目标值;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式