总结系列
一、背景
在平时的研发过程中,很多时候都会去为某种类型的的运算或者功能进行函数封装,比如你在进行对2个vector2是否在直线的同一侧进行判定,那么就会用到两个函数的叉乘运算;这个时候就需要封装了,否则每次都去编写这个运算还是很不爽的。
二、实践
方法的扩展需要满足下面的硬性标杆
- 扩展方法需要在静态类中进行,也就用static修饰class
- 扩展方法需要是静态方法,也就是用static修饰方法
- 扩展方法的第一个参数需要指定扩展类型
三、源码
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】