GetComponent()的3种重载版本
- T GetComponent<T>()
- Component GetComponent(Type type)
- Component GetComponent(string type)
在Unity3D脚本中,我们通过调用Component类的GetComponent函数来获取GameObject上的组件,那么:
各版本GetComponent方法的执行效率究竟如何?
如果在脚本中建立局部变量保存常用组件对象的引用(避免重复调用GetComponent()方法),究竟能提升多少效率?
结论
运行效率排名: 局部变量 >> GetComponent<T>() > GetComponent(Type type) >> GetComponent(string type)
自定义组件:
- 调用局部变量大约比调用GetComponent()方法快1个数量级以上
- GetComponent(string type)相比另外两个重载版本慢接近2个数量级
- GetComponent(Type type) 和 GetComponent(string type)的返回值是Component类型的对象,使用前还需要进行一次类型转换