合理运用Unity的一些拓展方法可使代码更简洁,还能提升工作效率!
using UnityEngine;
//这里要用静态,否则会报错
static class UnityExtension
{
static public T GetOrAddComponent<T>(this GameObject go) where T : Component
{
T com = go.GetComponent<T>();
if (com == null)
com = go.AddComponent<T>();
return com;
}
}
调用方式
MeshRenderer render = gameObject.GetOrAddComponent<MeshRenderer>();
等同于
MeshRenderer render = gameObject.GetComponent<MeshRenderer>();
if(render == null)
render = gameObject.AddComponent<MeshRenderer>();