【第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】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值