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使用我们自己封装的方法了。

 

posted @ 2017-09-07 11:08  StraussDu  阅读(332)  评论(0编辑  收藏  举报