Unity 如何根据tag查找一个 GameObject 下的子物体?

一个GameObject底下有几个子物体
我知道如何根据名称查找
用xxx.transform.FindChild("abc")
那如何根据tag查找呢?

如果用 GameObject.FindGameObjectWithTag 的话是全局查找,如何只查找子物体呢?

0

2个回答

 private List<GameObject> childObjs = new List<GameObject>();

private void FindChildObjs(){
         foreach(Transform child in transform){
             if(child.CompareTag(TagSomthing))//TagSomthing换成要比较的Tag
                 childObjs.Add(child.gameObject);
         }
     }

上述代码所属脚本挂在父物体上。

2
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Unity3D(通过Tag 标签查找物体)
1.Tag 简介 Tag 标签,就是一个标签。标签可以起到标识,区分的作用。 同一类的模型,我们可以根据需要给他们设置成统一的标签。 2.给模型添加Tag 标签 选中一个模型,在模型的Inspector 面板上的顶部位置,设置Tag 选项为一个 具体的标签。 如果说引擎提供的标签没有自己想要的标签,可以自己手动添加新标签。 3.通过Tag 标签查找N 个物体 GameObject....
Lua在Windows下的配置、安装、运行
Windows下安装、运行Lua! 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) 1↓ 进入Lua官网:http://...
Unity3D---查找某游戏物体与父子游戏物体相关详解
1.添加tagGameObject obj = GameObject.FindWithTag(&quot;Player&quot;);仅适用于tag场景中只有一个player tag时,若场景中有多个player tag,也只返回一个(场景中你最后创建的那个游戏物体)注意:无论运行该函数的游戏物体处于哪个父子层级,也无论目标tag处于哪个父子层级均能正常找到(遍历所有游戏物体)2.GameObject.FindGam...
Unity中的各种寻找GameObject方法归纳
1.GameObject.Find():寻找Hierarchy面板中的activie 不为false的游戏对象; 路径如官方事例写法: public class ExampleClass : MonoBehaviour {     public GameObject hand;     void Example() {         hand = GameObject.Find(&quot;Hand...
Unity3D获取GameObject的所有子对象,添加特定标签
using System.Collections;using System.Collections.Generic; using UnityEngine; using UnityEditor; public class AddTagsToObject : EditorWindow { string TagName; GameObject SceneObject; [MenuItem("S
Unity获取物体下的子物体
Unity获取当前物体的所有子物体 (一)通过使用GetComponentsInChildren() 我们首先先创建一个脚本,在其中Start()方法中添加如下代码 void Start () { Transform[] father = GetComponentsInChildren&amp;lt;Transform&amp;gt;(); foreach ...
Unity中查找子组件GameObject或Component的操作汇总
1.GameObject属性:tag常用于区分游戏中不同类型的对象(例如区分玩家和NPC)name:游戏物体的名称 方法:SetActive:使游戏物体处于活跃/不活跃状态例:other.gameObject.SetActive(flase);如果这行代码放到触发的代码中,就会起到一个让所有触发的物体都从世界上消失的作用 如何查找GameObject①直接拖拽赋值----public一个gameO
unity找到特定一个物体的子物体,多个子物体有相同的名称
  using System.Collections; using System.Collections.Generic; using UnityEngine; public class Roation : MonoBehaviour { //要找子物体的那个物体 private GameObject game; public Transform parent, tracker...
分享一个GameObject拓展类 查找子物体的并奉上效率测试
先上测试结果 没效率的东西在方便还是不好用 这是测试代码 bool ISO = true; float times = 0; void Start () { Get_Component(); System.Threading.Thread th = new System.Threading.Thread(thr); t...
采用GameObject.Find查找物体的子物体,并让其显示出来。
o是后台传过来的数值,该值与物体的子物体的名称一致,这时找子物体要像如下程序。 string o = data.byNt+""; GameObject.Find("UserInforUI").transform.FindChild(o + "/bg/Que/zhuang").GetComponent().gameObject.SetActive(true);
找出所有的控件子项,包括隐藏的GameObject
今天正好碰见要写一个查找所有UISprite,包括active=fales的情况 同理也可以找出所有的GameObject啦~~~ 贴上代码UISprite[] chidItem = parentObj.transform.GetComponentsInChildren(true); Debug.Log("查出所有子项 : " + chidItem.Length + " 个" ); UIS
Unity根据名称递归查找一个物体的子物体
public static GameObject FindHideChildGameObject(GameObject parent, string childName) { if(parent.name == childName) { return parent; } if(parent.transform.childCount < 1) { r
unity中查找物体的方法
首先GameObject类下有一个find方法,参数是物体的名称,返回胶这个名称的物体。但缺点在于,查找不够精准,例如:GameObject.find("point");         凡是场景中有叫point的都能被查找到,不够精准。                       在Transform类下面有个方法:Transform.FindChild(string);参数是物体名
Unity3D 高效率查找子物体(孩子比较多 需要查找的物体比较多的时候)
using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine;public class TestRes : MonoBehaviour { public GameObject go; // Use this for initialization vo
【Unity3D游戏开发】GameObject.Find()、Transform.Find查找隐藏对象 (十)
GameObjectFindTransformFind查找游戏对象 前置条件 相关API 1 GameObjectFind 2 TransformFind 3 其他查找 实际测试 即使隐藏root节点gameObject也能进行查找的方法GameObject.Find()、Transform.Find查找游戏对象1.前置条件Unity中常用到查找对象,非隐藏的、隐藏的,各种方法性能有高有低,使用又有
查找不到根节点的不可见的物体,transform.Find 与GameObject.Find区别
查找不到根节点的不可见的物体
unity 创建游戏物体的常用方法
using System.Collections; using System.Collections.Generic; using UnityEngine; public class api03GameObject : MonoBehaviour { public GameObject prefab; // Use this for initialization void Start...
Unity获取未激活游戏对象的方法
一、获取已激活游戏对象 1、  Gameobject.Find("游戏对象名")  //根据对象名直接获取游戏对象   这个方法可以找到指定的对象,但是一些缺陷。第一,如果场景中有重名,此方法找到的是Hierarchy从上至下第一次出现此对象名的对象。第二,如果对象的SetActive为false,那么这个方法永远无法找到对象。 1.1、  解决上述第一个问题(重名)的方法:   Game
遍历父物体下所有子物体的几种方式
1、通过标签来寻找  复制代码 1 2 3 4 5 6 7 8 9 void ForeachObjs()     {         //GameObject objs[] = GameObject         objs = GameObject.FindGameOb
unity获取物体下的所有子物体
1      通过标签来寻找 3 4 5 6 7 8 9 void ForeachObjs()     {         //GameObject objs[] = GameObject         objs = GameObject.FindGameObjectsWithTag("Cu
获取所有子物体(包括未激活的)
下面是获取所有子物体的方法: using UnityEngine; using System.Collections; public class FindObject : MonoBehaviour { public Transform[] objs; void Start() { objs = GetComponentsInChildren();
在U3D中查找物体和组件的方式
一、找物体: ①GameObject: a.Find(string name)通过物体的名字查找 b.FindWithTag(string tag);通过标签获取添加该标签的一个物体 c.FindObjectOfType();依据组件类型 d.FindGameObjectsWithTag(string tag)通过标签获取所有添加该标签的物体数组 ②Tra
在Unity中获得一个物体的所有子物体包括孙物体。
看API时想到了这个问题,如何获得一个物体的所有子物体,在Unity的API有这个函数 Component.GetComponentsInChildren 获取子物体组件列表。 首先是在Unity软件中创建了如图的物体。 然后创建了一个C#脚本,并把脚本拖到GrandFather物体中。 using UnityEngine; using System.Collections; pu
unity:unity 在场景中查找物体
直接上代码如图物体排列顺序,脚本挂在了第一个Cube上,基于Hierarchy 中查找,从上往下查找 直接上代码   void Start()     {         Transform transform= this.transform.GetChild(0); // 获取第一个子物体 括号里面只能是int类型,不激活也可以         Transform name1 = th...
unity常用的引用赋值一个GameObject的三种方法
1, 直接拖对象赋值。 public GameObject cube;   2, Find函数 public GameObject cube; public void ChangeColor2Red() { print (&quot;Change cube color to red&quot;); cube = GameObject.Find (&quot;Cube&quot;); cube.GetC...
Unity动态添加tag
1、 做的项目中 需要动态给物体创建一个tag,并添加给物体,但是出现了bug,想要给物体添加tag的话,必须要在编辑器面板中先声明,才可以用代码添加。 2、下面实现了 用代码动态添加tag,不需要先在编辑器中添加,首先要引入命名空间 using UnityEditor; 3、简单粗暴,直接上代码 #region 动态添加tag void AddTag(string tag, G...
面向组件编程之Unity 2.怎样获取脚本所在物体的各种组件 例如:gameObject属性
面向组件编程之Unity 2.怎样获取脚本所在物体的各种组件 例如:gameObject属性
unity中利用深度递归查找子物体
我所遇到的问题是:如何在层级关系未知的情况下,查找某一特定名称的子物体 代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; public class FindChild : MonoBehaviour { private void OnGUI() { ...
在untiy3d中获取通过父游戏物体得到子游戏物体
using System.Collections; using System.Collections.Generic; using UnityEngine; public class FatherGameObject : MonoBehaviour  { //用来存储子游戏物体的transform组件 public static Transform[]  m_transform; 
Unity获取场景gameobject的路径
Unity场景里gameobject路径的拷贝,资源,文件夹路径的拷贝。
关于 unity 获取所有 tag值 问题
目前为止,我试过的所有办法:没有一个可以在非editor情况下拿到的(打包出去都废了)editor获取所有tag,用下面代码吧,比较方便:            string[] str = UnityEditorInternal.InternalEditorUtility.tags;            print(str.Length);            for (int i = 0;...
运用递归查找对象下的所有子物体
最近,创建了好多对象,突然想知道我到底创建了多少对象,于是。。。。1.ctrl+a,然后alt+右方向键,使所有物体呈展开状态,然后执行代码 Debug.Log(Selection.gameObjects.Length);嗯,就是这样,一句话的事,但是。。。觉得不够方便(自己作死)于是有了2 2.还是一句话的事。。。 Debug.Log(FindObjectsOfType<Transform>()
Unity3D利用transform组件在父物体中寻找子物体的递归方法
  寻找cube 3 结果: void Update () {                  Transform tr= FindChild ( this.transform, &quot;Cube 3&quot; );         Debug.Log ( tr);                    }     /// &amp;lt;summary&amp;gt;     /// 需求:在一个游戏对象上找...
Unity3D总结记录(一) C#查找游戏对象的方法
    这两天在做案例的时候,发现,在Unity中,对象SetActive()方法中,初始化就设为false的对象,利用GameObject.Find(&quot;gameobject_name&quot;)方法,是无法找到初始化就设为隐藏的对象的,如果在做案例的时候,对于初始化就为隐藏的游戏对象,可利用如下方法找到该对象,再来对游戏对象进去显示或隐藏。举例:1.GameObject.Find(&quot;gameobject...
【Unity】获得当前脚本的物体的transform和gameobject
this当前脚本 transform当前物体的transform组件 gameObject当前脚本所挂的物体 创建一个A.cs脚本挂载在空物体B上, 在.cs文件中输入this表示的是当前的脚本,就是脚本A transform当前物体的transform组件,也就是空物体B的transform组件 gameObject当前物体的GameObjectB,也就是
如何根据tag查找一个GameObject下的子物体?
一个GameObject底下有几个子物体rn我知道如何根据名称查找rn用xxx.transform.FindChild("abc")rn那如何根据tag查找呢?
Unity通过脚本实现给一个物体添加子物体
首先我们创建一个Cube,然后给Cube创建一个材质球,材质球的颜色作为红色。接着把材质球丢给Cube,Cube的颜色变成红色。创建一个空物体(GameObject) 名字命名为Container,顾名思义,这个将作为容器。编写脚本:using UnityEngine; using System.Collections;public class GiveParent : MonoBehaviour
unity 找到父物体下的子物体
GameObject obj = GameObject.Find("Image Bg");         //首先找到父物体         GameObject zhen = obj.transform.Find("zhen").gameObject;         //然后找到父物体下的子物体
Unity查找物体的子物体、孙物体
Unity查找物体下的所有物体 GetComponentsInChildren &amp;lt;Transform&amp;gt;() —— 获取物体下的所有物体 本文提供全流程,中文翻译。助力快速完成服务器的购买、配置、以及网站的搭建为新手节省宝贵的时间,避免采坑! 此函数会返回一个 Transform 数组 遍历数组中元素即可拿到所有子物体、孙物体(所有物体) 注意: 当游戏对象被关闭时,也就是在 Inspector 面板中被关掉时 就会找不到北关掉的物体,以及其下方的所有物体 例如,当我们关掉“二级”
unity遍历子物体孙物体
有时候需要快速获得所有的子物体或者孙物体先定义一个存储用的列表因为需要判断是否子物体下还有子物体,所以用一个递归方法实现遍历,这样写起来简单些可以在这个方法中添加判断实现条件添加,比如说需要获取所有拥有某一脚本的物体就可以在里面判断如果是在编辑器下使用这个的话这样就可以获得选中物体的所有子物体(包括子物体下的子物体等)了。之后需要一些,统一的操作就可以处理objs这个列表。...