transfrom和component 的关系,以及各种高效的获取gameobject的方法

本文深入探讨了Unity引擎中Transform与GameObject的关系,以及如何高效地获取GameObject。Transform作为GameObject的一个子集,通过Component继承关系连接两者。文章详细介绍了GameObject.Find与Transform.Find的使用方法及其优缺点,并提供了一种在GameManager中利用静态字段控制GameObject的高效方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.transfrom 和 component 的关系,以及各种高效的获取gameobject的方法
transfrom 继承自component,是gameobject的子集

因此

  1. GameObject 可以获取 Transform
  2. Transform 可以通过继承 Component 来获取 GameObject

    获取组件:
    一,Gameobject.find
    GameObject.Find(“GameObject”); GameObject.Find("GameObject/ChildGameObject);
    如果有完全的路径,减少查找范围,减少查找时间。
    缺点:
    1 路径或结构调整后,容易影响到程序中的查找,需要重新定位查找路径。
    2 如果路径查找中的任何一个父节点active=false,这个对象都将查找不到。
    3 使用方便但效率低下

二,Transform.find
Transform AA31 = transform.Find(“A21/A31”);
Transform A11 = transform.Find(“A11”);
用于查找子对象和隐藏的子对象,查找隐藏对象时,隐藏对象的根节点必须是active=true;

高效获取组件的方法:
1 在GameManager 这个物体里加一个PlayerManager的脚本用于控制物体,写上静态字段(instance),awake里this。在需要被控制的物体上引用此脚本并赋值,即可在PlayerManager里控制

public static PlayerManager instance;

public GameObject player;
private void Awake()
{
instance = this;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值