输入控制模块

 通过公共Mono模块,让输入模块的Update能够每一帧运行

然后对输入操作进行事件注册,在Update中一旦进行相应操作,就进行事件分发,执行自己相应的按键逻辑

public class InputMgr : BaseManager<InputMgr> {
    private bool isStart = false;
    public InputMgr {
        MonoMgr.GetInstance().AddUpdateListener(Update);
    }

    // 是否开启/关闭输入检测
    public void StartOrEndCheck(bool isOpen) {
        isStart = isOpen;
    }

    public void Update() {
        if (!isStart) return;

        if (Input.GetKeyDown(KeyCode.W)) {
             EventMgr.GetIntance().EventTrigger("PressDOWN", KeyCode.W);
        }

        if (Input.GetKeyUp(KeyCode.W)) {{
            EventMgr.GetIntance().EventTrigger("PressUp", KeyCode.W);
        }
    }
}

// ---------------------------------------

public class InputTest : MonoBehaviour {
    public Start() {
        InputMgr.GetInstance().StartOrEndCheck(true);

        EventCenter.GetInstance().AddEvnetListener("PressDown", CheckInputDown);
        EventCenter.GetInstance().AddEvnetListener("PressDown", CheckInputUp);
    }

    private void CheckInputDown(object key) {
        KeyCode code = (KeyCode)key;
        switch(code) {
            case KeyCode.W:
                // TODO...
                break;
        }
        Debug.Log("down");
    }

    private void CheckInputUp(object key) {
        Debug.Log("up");
    }

    public OnDestroy() {
        EventCenter.GetInstance().RemoveEventListener("PressDown", CheckInputDown);
        EventCenter.GetInstance().RemoveEventListener("PressDown", CheckInputUp);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值