GameObject.Find和Transform.Find以及Transform.FindChild的区别(转)
2015-05-27 10:37
363 查看
在普通情况下,GameObject.Find以及Transform.Find和Transform.FindChild是可以做到相同的功能,但是他们有本质上的区别,望新手谨记:
GameObject.Find是遍历整个当前场景,挨个查找,效率偏低,非特殊情况一般不要使用
Transform.Find是只查找自己本身以及自己的子对象,效率比较高,用途比较大
Transform.FindChild是跟Transform.Find一样的用法,但是官方不建议继续使用,用Transform.Find代替之
那这么说,是不是代码里面就可以经常反复的使用Transform.Find呢?
答案肯定是否定的,因为即使效率太高,也是会有性能消耗的
正确的用法,如果在一个类里面会多次用到某一个对象,建议用一个变量保存起来,例如下面的情况:
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
private Text _textCount;
private int _index;
void Awake()
{
_textCount = transform.Find("Text").GetComponent<Text>();
}
void Update()
{
_textCount.text = "第" + _index + "次";
_index++;
}
}
GameObject.Find是遍历整个当前场景,挨个查找,效率偏低,非特殊情况一般不要使用
Transform.Find是只查找自己本身以及自己的子对象,效率比较高,用途比较大
Transform.FindChild是跟Transform.Find一样的用法,但是官方不建议继续使用,用Transform.Find代替之
那这么说,是不是代码里面就可以经常反复的使用Transform.Find呢?
答案肯定是否定的,因为即使效率太高,也是会有性能消耗的
正确的用法,如果在一个类里面会多次用到某一个对象,建议用一个变量保存起来,例如下面的情况:
using UnityEngine;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
private Text _textCount;
private int _index;
void Awake()
{
_textCount = transform.Find("Text").GetComponent<Text>();
}
void Update()
{
_textCount.text = "第" + _index + "次";
_index++;
}
}
相关文章推荐
- GameObject.Find和Transform.Find以及Transform.FindChild的区别
- unity中关于transform.Find以及transform.FindChild的区别
- mysql中FIND_IN_SET()用法以及与in()的区别
- [Android] setContentView和inflater区别以及findViewById和inflater的区别
- 基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
- 有关Fragment的getActivity().findViewById,以及inflate与 findViewById 区别、setContentView和inflate的区别!!!
- 基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
- 用示例说明filter()与find()的用法以及children()与find()的区别分析
- STL学习之十四:常用算法 for_each 和 transform以及adjacent_find的示例代码
- 解说jquery的has()方法以及与find()方法以及filter()方法的区别
- 基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
- jQuery的child方法、find方法,区别?
- 用示例说明filter()与find()的用法以及children()与find()的区别分析
- 基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
- Android] setContentView和inflater区别以及findViewById和inflater的区别
- 基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
- getLayoutInflater() 以及findViewById(R.id.outerlayout)区别
- 测试-关于Unity获取子层级内容的几种接口(Transform FindChild, Component GetComponentInChildren,...)
- 基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
- #define 的一些用法 以及 迭代器的 [] 与 find()函数的区别