Unity扩展GameObject等类中的方法
有时我们想在添加组件时避免重复添加,就需要先把存在的组件删除。于是写出扩展方法封装AddComponent。
public static class Assist { public static T AddComponentSingle<T>(this GameObject gameObject) where T : Component { return addcomponentSingle<T>(gameObject); } public static T AddComponentSingle<T>(this Transform transform) where T : Component { return addcomponentSingle<T>(transform.gameObject); } private static T addcomponentSingle<T>(GameObject target) where T : Component { if (target.GetComponent<T>() != null) { GameObject.Destroy(target.GetComponent<T>()); } return target.AddComponent<T>(); } }
通过这种方式就可以直接让gameobject使用我们自己封装的方法了。