我们在做项目的时候有些时候会遇到这种情况,使用别人封装的方法,但是又觉得方法没有自己所需求的,或者不是自己想要得,还有一种情况就是当你去接收别人的项目的时候,需要做修改而不能变动以前代码的时候,可能就需要用到扩展方法,这样既不会改变别人写的代码,又可以加上自己的修改,并为同一实例调用,是一种好用的方法。
在unity中简单使用
1.新建Attack类,包含几种攻击方法
public class Attack
{
public void AttackOne()
{
Debug.Log("攻击一");
}
public void AttackTwo()
{
Debug.Log("攻击二");
}
public void AttackThree()
{
Debug.Log("攻击三");
}
}
2.新建ExtensionAttack类,写需要扩展的方法
using UnityEngine;
using System.Collections;
//声明扩展的方法的类必须是static
//扩展的方法必须声明为static
//扩展方法必须包含关键字this作为第一个参数类型,后面跟上要扩展的类的名字
public static class ExtensionAttack
{
public static void AttackOther(this Attack attack)
{
Debug.Log("其他攻击");
}
}
3.测试脚本
using UnityEngine;
using System.Collections;
public class TestExtension : MonoBehaviour
{
void Start()
{
Attack attack = new Attack();
attack.AttackOne();
//用原始实例来调用
attack.AttackOther();
}
}