精华内容
下载资源
问答
  • Unity获取物体下的物体

    万次阅读 2018-08-15 15:16:36
    Unity获取当前物体的所有子物体 (一)通过使用GetComponentsInChildren() 我们首先先创建一个脚本,在其中Start()方法中添加如下代码 void Start () { Transform[] father = GetComponentsInChildren&...

    Unity获取当前物体的所有子物体

    (一)通过使用GetComponentsInChildren()

    我们首先先创建一个脚本,在其中Start()方法中添加如下代码

    void Start () {
            Transform[] father = GetComponentsInChildren<Transform>();
    
            foreach (var child in father)
            {
                Debug.Log(child.name);
            }
    	}
    

    再将脚本附到对应物体启动即可(如图是Father物体)

    结果如下:

    我们可以看到Father物体下的所有子物体包括孙物体也都显示出来了


    那么如果我们只要Father物体下的子物体,而不要孙物体呢,该如何实现呢?

    我们创建如下脚本将其添加到Father物体上,并将Father物体拖动到脚本上的Transform上

        public Transform father;
        
        public void Start()
        {       
            for (int i = 0; i < father.childCount; i++)
            {
                var child = father.GetChild(i).gameObject;
                Debug.Log(child.name);
            }
        }
    

    运行结果如下:

    (二)通过 GameObject.FindGameObjectsWithTag()来找到物体

    这个方法只适用于给需要查找的物体提前打过标签tag才可以,比如我们给上面的三个子物体Son、Son1、Son2添加标签“erzi”

    然后我们再新创一个脚本,代码如下:

     public Transform father;
        void Start()
        {
           /* GameObject name2 = GameObject.FindGameObjectWithTag("erzi");*/
            GameObject[] name3 = GameObject.FindGameObjectsWithTag("erzi");
           // Debug.Log(name2);
            foreach(var son in name3)
            {
                Debug.Log(son.name);
            }
        }
    

    运行结果如下:

    细心的朋友肯定可以看到上面代码有二行注释掉的,第一次调用函数时没注意调用错了…不仔细看真的容易错,使用FindGameObjectWithTag 由于有三个物体打上了"erzi"的标签,实际只能找出一个,所以找的时候是把最后一个物体找出。
    如果运行注释掉的那两句话,结果是Son3

    展开全文
  • unity获取物体下的所有物体

    万次阅读 2016-03-24 09:47:58
    //把这个函数放到你的代码中 check代表你要查询的物体 name为名称 如return GetTransform(transform,"bone12");     Transform GetTransform(Transform check, string   name) { ...
    1      通过标签来寻找 
    

    3
    4
    5
    6
    7
    8
    9
    void  ForeachObjs()
         {
             //GameObject objs[] = GameObject
             objs = GameObject.FindGameObjectsWithTag( "Cube_00" );
             foreach  (GameObject obj  in  objs)
             {
                 obj.AddComponent( "OnTiggerEnterSendMessage" );
             }
         }


    2、通过 transform 来寻找并附加脚本

    foreach (Transform child in gameObject.transform) 

     {

     child.gameObject.AddComponent("OnTiggerEnterSendMessage"); 

     }

    3、另外一种 (转)

    //把这个函数放到你的代码中 check代表你要查询的物体 name为名称 如return GetTransform(transform,"bone12");
          
    Transform GetTransform(Transform check, string  name)
    {
       foreach  (Transform t  in  check.GetComponentsInChildren<Transform>())
       {
         if (t.name==name){ return  t;}
         GetTransform(t,name);
       }
       return  null ;
    }

    展开全文
  • Unity3d获取物体物体对象(child)

    千次阅读 2018-10-10 16:21:33
    foreach (Transform child in transform) { Debug.Log(child.gameObject.name); }  
    foreach (Transform child in transform)
    {
        Debug.Log(child.gameObject.name);
    }

     

    展开全文
  • Unity 获取子物体

    2021-07-27 16:49:35
    查找代码块中最近物体的物体 GameObject.Find(""); 获取物体中的组件 隐藏物体的组件也一并获取 ...gameObject....获取物体根节点下指定路径的物体 gameObject.transform.Find("Selecte.

    查找代码块中最近物体的子物体

    GameObject.Find("");

    获取子物体中的组件

    隐藏子物体的组件也一并获取

    gameObject.GetComponentsInChildren<SpriteRenderer>(true)

    不获取隐藏子物体

    gameObject.GetComponentsInChildren<SpriteRenderer>()

    获取物体根节点下指定路径的子物体

    gameObject.transform.Find("SelectedEffect/遮罩/渐变")

    展开全文
  • 开始是找了下U3D的SCRIPT手册,发现找不到这玩意。然后在谷歌搜"unity3d get all child"才找到了答案。很简单的答案,不过挺有意思的,挺好用。 ...foreach (Transform child in ...transform是你所需要找的物体
  • List lst = new List; foreach (Transform ...当然下面这样也行,每次都获取一下索引的子物体,删除即便延迟也没问题。 for (int i = tr.childCount - 1; i >= 0; i--) { Destroy(tr.GetChild(i).gameObject); }
  • Unity查找物体子物体、孙物体

    万次阅读 2018-07-01 23:59:02
    () —— 获取物体下的所有物体 本文提供全流程,中文翻译。助力快速完成服务器的购买、配置、以及网站的搭建为新手节省宝贵的时间,避免采坑! 此函数会返回一个 Transform 数组 遍历数组中元素即可拿到所有物体、...
  • 获取物体下面的子物体

    千次阅读 2018-09-11 18:20:54
    GameObject.Find("父物体名").transform.FindChild("子物体名");
  • Unity获取父类/子物体获取父类获取子物体 获取父类 当前对象是子物体Sphere,获取层级列表上一级父物体Cube: GameObject sphere; GameObject parentOfSphere; void Start() { sphere = GameObject.Find(...
  • 如何获取子物体物体重孙物体子孙后代所有的某个组件呢? 我的第一直觉是用递归,毕竟这玩意是个树状的嘛!但是话说回来我的递归有返回值的话我可能遍历到某个分支的尽头就返回了,所以我想了个办法,递归的方法让...
  • ()的方法来获取指定物体下的所有子物体,并复制给数组,然后进行遍历 activePanel为指定物体,string是需要查找的物体的名称 public GameObject FindChildGameObject(string name) { Transform[] trans = ...
  • Unity3D 获取当前物体为第几个子物体

    千次阅读 2019-07-23 17:28:36
    Unity3D 如何获取当前物体为第几个子物体 快下班了,没想到今天能写两篇新发现。 不多说,直接上代码了: print(transform.GetSiblingIndex());//显示当前物体为第几个子物体 ...
  • unity遍历子物体物体

    千次阅读 2018-07-13 16:50:56
    所以用一个递归方法实现遍历,这样写起来简单些可以在这个方法中添加判断实现条件添加,比如说需要获取所有拥有某一脚本的物体就可以在里面判断如果是在编辑器下使用这个的话这样就可以获得选中物体的所有子物体...
  • using System.Collections; using System.Collections.Generic; using UnityEngine; public static class Tools{ //利用递归通过父物体的名字查找子物体的Transform组件 ... //父物体的名字与子物体的名字相同
  • Unity3d获取和正确删除所有子物体

    万次阅读 2016-12-27 17:09:18
    Unity3d获取物体的所有物体对象(child) 如何正确删除物体 核心代码: foreach (Transform childTr in transform) {   Debug.Log("childTr物体名字:"+childTr.gameObject.name); } ...
  • 找到子物体,常用于将子物体赋值到List中,缺点明显,只能遍历当前物体的所有子物体,但不包含孙物体 foreach (Transform child in this.transform) { Debug.Log("所有该脚本的物体下的子物体名称:" + ...
  • 得到子物体是用父物体transform的GetChild(),结合父物体子物体的数量(transform的childCount属性),用for循环进行遍历。 例子: 获取Sphere下所有Cube的BoxCollider public class OperateChildrenTogether : ...
  • 获取子物体数量---Transform.childCount

    万次阅读 2017-08-22 22:43:36
    那去获取拿到子物体数量?transform.GetChildCount();可以解决 但在新版本中已被弃用,可用transform.childCount来直接获取子物体数量。 using UnityEngine; using System.Collections; public class ExampleC
  • 为啥一个子物体放在父物体上面后,坐标还是在子物体上啊,我想要父物体坐标,但是坐标跑子物体上了</p>
  • 获得父物体的方法是,通过transform类中的一个函数parent获得该父物体的transform信息...如果是创建子物体的话,只需要创建后设置物体的父物体就好了,获取子物体是通过transform类中的getchild(int)/findchild(string)
  • ScrollRect拖拽事件和子物体的拖拽事件有冲突的解决办法。 工作中遇到ScrollView的拖拽事件和其子物体下的拖拽事件有冲突,拖拽子物体时左右移动,ScrollView也会动,查CSDN遇到的都是ScrollView的子物体点击事件被...
  • Unity3d获取物体的所有物…

    千次阅读 2014-10-21 14:49:52
    原文地址:Unity3d获取物体的所有物体对象(child)作者:葱烧烙饼更新于:2013.5.18 List lst = new List; foreach (Transform child in transform) {    lst.Add(child);    Debug.Log(child.gameObject....
  • 如果事先把这些子物体都隐藏了(enabled = false),则无法获取这些子物体生成数组。 为了达到控制子物体又不能让其显示,我们可以先获取这些子物体,然后将其enabled = false; txList = transform....
  • lua查找并获取子物体组件

    千次阅读 2019-07-16 13:57:20
    gameObject.transform:Find("子物体路径"):GetComponent('组件名称') 注意Find()和GetComponent()两个方法是用冒号调用. CS.UnityEngine.GameObject.Find("游戏物体名称") 使用此方式查找是用点调用. ...
  • unity 获取物体下的子物体

    千次阅读 2019-09-16 10:44:36
    GameObject aa;//父物体 Transform fu = aa.GetComponentInChildren< Transform>(); foreach (Transform item in fu) { print(item.name); }
  • unity3d 子物体

    2013-03-29 10:40:45
    可以让其他物体办成他的子物体。他的功能在于可以对物体的方向进行控制
  • Unity通过层级关系获取子物体

    千次阅读 2014-12-23 17:10:30
    获取模型相对于跟节点的层级目录,比如一个角色模型的手相对于角色根节点的层级关系... //找到模型上每个子物体,下面方法为获取一个子物体相对于跟物体的层级目录 // LeftShoulder/Arm/Hand/Finger 返回这样的层级目

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 135,380
精华内容 54,152
关键字:

子物体