引言
最近跟着麦克学习Unity的时候,学习到了类的扩展方法。比如你现在有一个已有的类,你想给它加一个方法,当然如果是你自己写的类可以直接在这个方法里面写,但是如果是Unity自带的类,我们不可能直接去编辑它们,我们只是去利用这个类然后加上一些我们自己的方法。所以我们就可以用到Extension Method 扩展方法。
附:Unity官方教程:教程
注:
下方步骤均为硬性要求,并且以扩展Transform类为例子。
步骤一
首先创建一个类。不继承MonoBehaviour。
将该类设置为Static,也就是静态类。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class ExtensionMethod
{
}
步骤二
创建一个你需要拓展的的方法,该方法为静态的。该方法的第一个参数为以下格式:this + 你需要扩展的类的名字 + 变量名。后面几个参数都是需要就加。
解析:第一个参数表示你需要扩展的类,该扩展方法中可以用,实际调用方法的时候不需要传该参数。(文章下方有调用例子)
例如
this Transform trans
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class ExtensionMethod
{
public static bool ExtensionMethod(this Transform transform, int var1, float var2)
{
}
}
调用
在其他类的方法中,你可以这样来调用
if(满足某个条件)
{
transform.ExtensionMethod(var1, var2);//其中var1和var2为我自己需要的参数的变量
}
总结
Extension Method 扩展方法:当你需要为某个类添加一些自定义的功能,但是又不能直接访问到源码的时候可以用到。