1、定义个拓展类,这个类必须是静态类,static
2、定义拓展方法,这个方法也必须是静态的
3、拓展方法的语法比较奇怪,第一个参数是被拓展的类,而且必须在前面添加this关键字
4、不仅可以对类进行拓展,也可以对接口进行拓展
例子:
static public Vector3[] GetSides (this Camera cam, Transform relativeTo)
{
return cam.GetSides(Mathf.Lerp(cam.nearClipPlane, cam.farClipPlane, 0.5f), relativeTo);
}
这就是给Camera类写了一个拓展方法GetSides
调用方法:targetCam.GetSides(myRect.cachedTransform);
targetCam为Camera的一个实例