Unity查找物体的几种方法
1.GameObject.Find()
全局查找,可以通过名字和路径进行查找游戏对象;
使用特点:
1).通过名字查找游戏对象:对于隐藏的对象是无法查找的(注:父节点不要是隐藏的)
如果场景中存在多个重名的游戏对象,只是归属于父节点不同,获取到的游戏对象是最后一个查找到的游戏对象,可能结果与自己的预期不相符。
2).通过路径查找:如果要寻找的游戏对象不是最上层,建议合理使用路径查找,
注意:
优点:可以进行快速查找,相对的减少了查找时间
缺点:路径的固定,会造成如果游戏对象的位置改变,很容易报异常,找不到游戏对象,游戏对象中如果 父节点是隐藏的,也会找不到。
3).整体该方法效率比较低下,实质相当于递归遍历查找,在start()函数中使用并保存引用,不要在 update 中使用。
2.GameObject.FindGameObjectWithTag()
根据Tag标记来查找游戏对象
使用特点:
1). 通过Tag标签来查找游戏对象,对于隐藏的游戏对象是无法查找的;
2). 如果场景中存在多个该标签的游戏对象,如果依然使用该方法,查找到并获取的是最后一个查找的游戏对象的信息,会存在与自己的预期