public class Manager : SingeltonPatternBase<InputKeysManager> { public inputkeysmanger() { MonoManager.Intance.AddUpdateListener(CheckKeys); } //开启关闭按键输入功能 public bool IsActive { get; private set; } ///<summary> ///根据传入的值是true还是false,来开启和关闭按键输入。 ///</summary> /// <param name="isActive"></param> public void SetActive(bool isActive) { IsActive = isActive; } ///<summary> ///用来监测玩家的按键输入 ///</summary> void CheckKeys() { //Debug. Log(IsActive); if (!IsActive) return; if (Input.GetKeyDown(KeyCode.W)) { //发布一条按下W键的消息——执行者自己去执行 EventManager.Intance.Dispatch(E_InputCommand.GetKeyDown); }
时间: 2024-03-18 14:44:33 浏览: 60
这是一个Unity的脚本,其中包含一个名为Manager的类。这个类继承了一个名为SingeltonPatternBase的泛型类,泛型参数为InputKeysManager,表示这个类是单例模式的一个实例。在Manager的构造方法中,会调用MonoManager类的AddUpdateListener方法,将CheckKeys方法作为它的参数,从而在每一帧更新时检查玩家的按键输入。
Manager类还包含一个名为IsActive的属性,表示当前按键输入功能是否被开启。SetActive方法用于根据传入的参数值来开启或关闭按键输入功能。CheckKeys方法则会在IsActive为true时,检测玩家的按键输入。如果玩家按下了W键,那么会发布一个名为E_InputCommand.GetKeyDown的事件,让执行者自己去执行相应的操作。
相关问题
public class InputPlayer :MonoBehaviour { private Vector3 moveDir =Vector3. zero; private float moveSpeed =5; private void Awake() { //注册按下按键的监听事件 EventNanager. Intance.AddEventListener(E_InputCommand.GetKeyDown,CheckInputKeys); } ///<summary> ///执行按下按键后的操作 ///</summary> void CheckInputKeys() { transform. position +=Vector3. forward; } private void OnDestroy()销毁 { EventManager. Intance.RemoveEventListener(E_InputCommand.GetKeyDown,CheckInputKeys); }
这是一个Unity的脚本,其中包含一个名为InputPlayer的类。在该类的Awake方法中,会注册一个名为E_InputCommand.GetKeyDown的事件的监听器,当该事件被触发时,会调用CheckInputKeys方法。
CheckInputKeys方法会将该物体向前移动一个单位,即将transform.position的值加上Vector3.forward的值。
在该类的OnDestroy方法中,会移除E_InputCommand.GetKeyDown事件的监听器,以避免在该对象被销毁时仍然持有该事件的引用。
public class inputtest : MonoBehaviour { private void OnGUI()两个按钮test的 { if (GUI.Button(position: new Rect(x: 50, y: 50, width: 100, height: 100), text: "开启按键输入")) { InputKeysManager.Intance.SetActive(true); } if (GUI.Button(position: new Rect(x: 50, y: 200, width: 100, height: 100), text: "关闭按键输入")) { InputKeysManager.Intance.SetActive(false); }
这是一个Unity的脚本,其中包含一个名为"OnGUI"的方法,它会在每一帧绘制GUI时被调用。在该方法中,会创建两个按钮,一个是"开启按键输入",另一个是"关闭按键输入"。当用户点击"开启按键输入"按钮时,会调用InputKeysManager类的SetActive方法,并将其参数设置为true,从而开启按键输入。当用户点击"关闭按键输入"按钮时,会调用InputKeysManager类的SetActive方法,并将其参数设置为false,从而关闭按键输入。
阅读全文