命令模式:
将一个请求封装成一个对象,从而允许你使用不同的请求、队列或日志将客户端参数化。同时支持请求操作的撤销与恢复。
命令就是面向对象化的回调。
最常见的便是用在输入控制上。
我们可以将输入的信号转换成对应的指令,存入命令队列中,依次执行。
下面是一个小例子:
在Unity中,主要用到了这几个脚本。
代码部分:
Unit:所有单位的基类,封装了通用的高级方法。后续如果新建不同的单位类型从这个类继承就可以了。简便起见,只预设了两个方法。
public class Unit:MonoBehaviour {
//速度
public float Speed=5;
//移动
public void Move(Vector2 dir)
{
transform.Translate(dir * Speed * Time.deltaTime);
}
//射击
public void Shot()
{
Debug.Log("Shoot!!!");
}
}
</