using System.Collections; using System.Collections.Generic; using UnityEngine; public class InputMgr : Singleton { private bool isStart = false; public InputMgr() { MonoMgr.Instance.AddUpdateListener(MyUpdate); } public void StartOrEndCheck(bool isOpen) { isStart = isOpen; } private void MyUpdate() { if (!isStart) return; CheckKeyCode(KeyCode.J); CheckKeyCode(KeyCode.K); } private void CheckKeyCode(KeyCode key) { if(Input.GetKeyDown(key)) { EventCenter.Instance.EventTrigger("KeyisDown", key); } if (Input.GetKeyUp(key)) { EventCenter.Instance.EventTrigger("KeyisUp", key); } } } #region 用法 //public class Inputtest : MonoBehaviour //{ // void Start() // { // //开启输入检测 // InputMgr.GetInstance().StartOrEndCheck(true); // //添加事件监听 // EventCenter.GetInstance().AddEventListener("KeyisDown", CheckInputDown); // EventCenter.GetInstance().AddEventListener("KeyisUp", CheckInputUp); // } // private void CheckInputDown(KeyCode obj) // { // switch (obj) // { // case KeyCode.W: // Debug.Log("前进"); // break; // case KeyCode.A: // break; // case KeyCode.S: // break; // case KeyCode.D: // break; // } // } // private void CheckInputUp(KeyCode obj) // { // switch (obj) // { // case KeyCode.W: // Debug.Log("不再前进"); // break; // case KeyCode.A: // break; // case KeyCode.S: // break; // case KeyCode.D: // break; // } // } // private void OnDestroy() // { // EventCenter.GetInstance().RemoveEventListener("KeyisDown", CheckInputDown); // EventCenter.GetInstance().RemoveEventListener("KeyisUp", CheckInputUp); // } //} #endregion