1.transfrom 和 component 的关系,以及各种高效的获取gameobject的方法
transfrom 继承自component,是gameobject的子集
因此
- GameObject 可以获取 Transform
- 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;
}