【第011问 Unity中如何进行方法扩展?】

总结系列

一、背景

在平时的研发过程中,很多时候都会去为某种类型的的运算或者功能进行函数封装,比如你在进行对2个vector2是否在直线的同一侧进行判定,那么就会用到两个函数的叉乘运算;这个时候就需要封装了,否则每次都去编写这个运算还是很不爽的。

二、实践

方法的扩展需要满足下面的硬性标杆

  1. 扩展方法需要在静态类中进行,也就用static修饰class
  2. 扩展方法需要是静态方法,也就是用static修饰方法
  3. 扩展方法的第一个参数需要指定扩展类型

三、源码

using UnityEngine; 
/// <summary>
/// Vector2扩展
/// </summary>
public static class Vector2Extend
{
    
    
    /// <summary>
    /// 该扩展方法为静态类型 扩展二维向量的叉乘
    /// </summary>
    /// <param name="vectorA">第一个参数使用this + 扩展类型 + 该类型对象 </param>
    /// <param name="vectorB"></param>
    /// <returns>返回叉乘结果</returns>
    public static float Cross(this Vector2 vectorA, Vector2 vectorB)
    {
    
    
        return vectorA.x * vectorB.y - vectorB.x * vectorA.y;
    }
}

四、调用方式

在这里插入图片描述在这里插入图片描述

结语:
好记性不如烂键盘【valaki】

猜你喜欢

转载自blog.csdn.net/valaki/article/details/123697664
011