Unity与设计模式之命令模式

本文介绍了如何在Unity中运用命令模式,将请求封装为对象,用于输入控制。通过命令队列执行和撤销操作,使得代码更优雅、简洁。以移动和射击命令为例,展示了Command接口和具体命令类的实现,并提到了该模式在异步状态下的应用,如war3、刀塔游戏中的shift操作。
摘要由CSDN通过智能技术生成

命令模式:

将一个请求封装成一个对象,从而允许你使用不同的请求队列日志将客户端参数化。同时支持请求操作的撤销恢复

 命令就是面向对象化的回调。

 

最常见的便是用在输入控制上。

我们可以将输入的信号转换成对应的指令,存入命令队列中,依次执行。

下面是一个小例子:

在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!!!");
    }
}
</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值