美文网首页Unity3d游戏开发
对unity3d现有的类扩展,添加自定义的方法

对unity3d现有的类扩展,添加自定义的方法

作者: 王广帅 | 来源:发表于2022-04-10 16:05 被阅读0次

在调用unti3d的某个类的方法时,有可能类调用路径太长,或有些我们需要的方法,unity3d本身的类没有提供,这个时候,我们就可以对unity3d现在有类进行扩展,例如:
在查询某个组件时,一般我们这样写:

public class TopBarController : MonoBehaviour
{
    private LabelText scoreLableText;
    private LabelText goldLableText;
    // Start is called before the first frame update
    void Start()
    {
        this.scoreLableText = this.transform.Find("ScoreLabelText").GetComponent<LabelText>();
        this.scoreLableText.SetName("分数:");
        this.goldLableText = this.transform.Find("GoldLabelText").GetComponent<LabelText>();
        this.goldLableText.SetName("金币:");
    }
}

在代码中,我们想获取某个组件的代码,调用的时候,是先获取组件,调用路径会多一步,但是我们可以扩展Unity的Transform类的方法,例如:

public static class UIExtension 
{
    public static T FindComponent<T>(this Transform parent,string path) {
        return parent.Find(path).GetComponent<T>();
    }
}

注意,这里必须是表态类。
在使用的时候,就可以这样使用了:

public class TopBarController : MonoBehaviour
{
    private LabelText scoreLableText;
    private LabelText goldLableText;
    // Start is called before the first frame update
    void Start()
    {
        this.scoreLableText = this.transform.FindComponent<LabelText>("ScoreLabelText");
        this.scoreLableText.SetName("分数:");
        this.goldLableText = this.transform.FindComponent<LabelText>("GoldLabelText");
        this.goldLableText.SetName("金币:");
    }
}

相关文章

  • category(类别)

    category相关网站点击是现有的类添加的方式 比继承更为简洁的方法来对类进行扩展 不用子类添加新方法 就能为现...

  • 对unity3d现有的类扩展,添加自定义的方法

    在调用unti3d的某个类的方法时,有可能类调用路径太长,或有些我们需要的方法,unity3d本身的类没有提供,这...

  • 分类-Category

    1 简介 主要为类添加方法:不管系统的类还是自定义的类 声明私有方法(扩展) 分类是运行期决议的;扩展是编译期决议...

  • 自定义Kotlin的String扩展方法

    自定义Kotlin的String扩展方法 1、 对系统lib里面的类进行扩展,称为扩展函数2、对String类进行...

  • iOS- OC夯实基础之类目 延展 协议

    类目 (category) 对现有的类添加扩展,如:系统中的类,在类目中添加的方法会被子类继承,而且运行时跟其他的...

  • HAP自定义Excel导出

    添加自定义导出按钮 扩展 viewModel 对象并添加 exportExcelCustom() 方法 给字段添加...

  • 类的加载(三)

    类扩展 类扩展 VS 分类 category 专门用来给类添加新的方法 不能给类添加成员属性,添加了成员变量,也...

  • 我不知道的category

    category category是类别,是为现有的类添加一个方式,这是一种比继承更简捷的方法,对类进行扩展,不用...

  • swift extension添加方法的两种方式

    swift的extension很好用,可以为现有的类、结构体、枚举添加方法,也可以结合协议扩展来添加方法,如下代码...

  • category你不知道的那点事

    Category这是一种比继承更简洁的方法来对类进行扩展,不需创建子类就能为现有的类提供方法,它不但可以添加新方法...

网友评论

    本文标题:对unity3d现有的类扩展,添加自定义的方法

    本文链接:https://www.haomeiwen.com/subject/xsbvsrtx.html