Unity扩展GameObject等类中的方法

Posted StraussDu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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使用我们自己封装的方法了。

 

以上是关于Unity扩展GameObject等类中的方法的主要内容,如果未能解决你的问题,请参考以下文章

unity基础(GameObject transform)

Unity3D_01_各种寻找GameObject方法

Unity中的SendMessage方法

Unity - 项目面板中缺少子元素扩展按钮的预制件

unity C# 法通过引用转换...将类型“UnityEngine.GameObject”转换为“UnityEngine.Rigidbody”

是否可以在 Unity 中保存 GameObject 及其组件?