首页 > 其他分享 >Unity查找物体和组件的方法

Unity查找物体和组件的方法

时间:2024-05-21 15:07:32浏览次数:23  
标签:string 物体 Transform Unity 查找 组件 targetTF name

一、找物体: ①GameObject: a).Find(string name)通过物体的名字查找 b).FindWithTag(string tag);通过标签获取添加该标签的一个物体 c).FindObjectOfType();依据组件类型 d).FindGameObjectsWithTag(string tag)通过标签获取所有添加该标签的物体数组 返回一个组合   ②Transform: a).获取到物体的Transform组件。然后Transform.gameObject;   ③任意Component: a).Compontent有个公开的成员变量GameObject       二、找组件: ①GameObject: 获取到GameObject–>拿到成员transform–>利用Transform中的方法查找组件   ②Component: a).GetComponent() b).GetComponentInChildren c).GetComponentInParent   d).GetCompontents e).GetComponentsInChildren f).GetComponentsInParent   g).FindObjectOfType<>()依据组件类型 h).FindObjectsOfType<>()   ③Transform: 已知层级:在他的直接孩子中查找 a).Find(string name) b).FindChild(string name) c).GetChild(int index)   未知层级,已知组件名字:

public static Transform GetChild(Transform transform,string name)
        {
            Transform targetTF = transform.FindChild(name);
            if(null != targetTF) return targetTF;
            Transform[] arr = transform.GetComponentsInChildren<Transform>();
            for (int i = 0; i < arr.Length; i++)
            {
                    targetTF = arr[i].FindChild(name);
                    if (null != targetTF)
                    return targetTF;
            }
            return null;
        }

 

  三、使用公开成员变量,在Unity的Inspector面板中进行赋值      

标签:string,物体,Transform,Unity,查找,组件,targetTF,name
From: https://www.cnblogs.com/weigangblog/p/18204102

相关文章

  • Unity的UnityEngine.EventSystems中的接口
    一、IPointerDownHandler,IPointerUpHandler,IPointerClickHandler,IPointerEnterHandler,IPointerExitHandlerpublicvoidOnPointerClick(PointerEventDataeventData){Debug.Log("OnPointerClick,鼠标点击,在点击之后抬起时响应");}publicvoidOnP......
  • Unity编辑器Scene窗口快捷操作
    1.按住crtl,可以一个一个单位移动、缩放、旋转物体,单位距离在Edit-Snapsetting中设置,设置单位大小2.选中物体,按住alt+鼠标左键,可以环视目标物体3.按住V键,可以将物体的顶点接到其他物体的顶点 如果要设置更改其他在Scene窗口中的操作,可以利用MonoBehaviour下的OnDrawGizmos或......
  • Unity控制台console打印富文本
    可以用来控制Debug打印文本的 加粗斜体大小颜色Debug.Log("HelloWorld".AddBoldTag().AddColorTag("red"));publicstaticclassStringTagExt{publicstaticstringAddBoldTag(thisstringtext){returntext.AddTag("b");}......
  • Unity物体之间碰撞检测的方法
    检测碰撞有两种方式,一种是利用碰撞器,另外一种就是触发器。碰撞器的种类:1.StaticCollider静态碰撞器指的是相互碰撞的两个物体没有附加刚体而只附加了Collider的游戏对象。这类对象在碰撞时会保持静止,发生碰撞时不会触发任何的方法函数。 2.RigidbodyCollider刚体碰撞器......
  • form-create-designer中怎么扩展自定义组件
    form-create-designer中怎么扩展自定义组件form-create-designer是基于 @form-create/element-ui实现的表单设计器组件。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。FormCreate官网:https://www.form-create.com帮助文档:https://pro.form-cr......
  • Unity WebGL的一些配置
    添加自定义值方法:在网页模板中,添加<title>公司名字|{{{PROJECT_NAME}}}</title>///读取PlayerSettings.GetTemplateCustomValue("PROJECT_NAME");///设置PlayerSettings.SetTemplateCustomValue("PROJECT_NAME","这是一个自定义值");修改WebGL模板说......
  • 逻辑升级,深度解析如何实现业务中的且或组件
    在业务实现的过程中,时常会出现且或关系逻辑的拼接。逻辑运算的组合使用,是实现复杂业务规则和决策支持系统的关键技术。目前袋鼠云的指标管理平台、客户数据洞察平台、数据资产平台都有在使用。并且,且或组件已经在RC5.0中添加到组件库,企业现在可以更加灵活地构建和实施复杂的业......
  • Arch Linux CN Community repo mirrors list
    kate /etc/pacman.conf/etc/pacman.d/mirrorlist ##Ourmainserver(Amsterdam,theNetherlands)(ipv4,ipv6,http,https)[archlinuxcn]Server=https://repo.archlinuxcn.org/$arch ##CERNET(中国)(ipv4,ipv6,http,https)##Added:2023-08-19##Thiswill......
  • Unity优化总结(2021.04.08)
    项目性能优化的三个方面:1.CPU优化Cpu优化不够会出现的问题:由于短时间计算量太大,画面流畅性降低,出现跳帧发热严重,耗电量高(1)代码方面删除一些空的方法,尤其是Update等;使用for循环代替foreach,使用List代替ArrayList,尽量少使用封箱拆箱操作;循环中可以Break掉的直接退出循......
  • Unity性能优化CPU优化
    CPU主要进行计算机的各种计算操作,因此关于CPU性能优化的方面和Tips有很多,有些影响大有些影响小,有些容易优化有些不易优化,细节方面也有很多,归类之后重点讲几个方面,并列出常见Tips。对CPU性能影响比较大的主要有以下几个方面:DrawCalls,物理组件,GC,代码质量,其中DrawCall是CPU优化最先......