网站全局搜索,网页魔域,珠海建站模板源码,软件项目管理是做什么的本文仅作笔记学习和分享#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册#xff0c;unity唐老狮等教程知识#xff0c;如有不足还请斧正 首先你应该了解新输入系统的构成结构#xff1a;Unity新输入系统结构概览-CSDN博客 Input System - Unity 手册
1.In… 本文仅作笔记学习和分享不用做任何商业用途 本文包括但不限于unity官方手册unity唐老狮等教程知识如有不足还请斧正 首先你应该了解新输入系统的构成结构Unity新输入系统结构概览-CSDN博客 Input System - Unity 手册
1.InputAction概览
还是需要强调InputAction中定义了所有的输入手势是用来配置输入的基本单位
声明一个变量 public InputAction inputaction; 2.预配置选项齿轮
Unitys new Input system Beginners Guide - VionixStudio 2.1 Action Type
动作类型可以自己选择响应方式我也理解为模拟量化方式 比如键盘上的案件你总不可能用value来处理显然是buttron表示一次的按键事件而鼠标的点击肯定是用value来模拟不然怎么处理连续的拖动呢 2.2 Control Type 2.3 Interactirons
交互方式非常简单就是长按多按压按慢按点按触发 如果想要设置详细信息或者配置更多的内容可以open input settings里有一大堆可以设置的参数 2.4 Processors
后处理该处就是将动作类型设置的返回值通过一定方式处理并再次返回出去 3.Binding绑定按键 当然添加绑定方式也受到Acrtion Type和Control Type影响
当我如下设置时会出现上下左右键的组合绑定 如下设置时则会前后左右键的组合绑定 双击空的绑定事件可以自己选择输入方式的具体内容比如我就拿键盘的wasd举例 双击2D vector可以看到其部分参数 4.代码与事件
Class InputAction | Input System | 1.6.1 (unity.cn) 为了举例我绑定了一个button的鼠标左键事件 最最开始可以使用Enable方法启用输入检测
开始触发与结束事件
查看源码可以看到started事件类型是一个泛型的有参无返回值的Action
C# 事件-CSDN博客 so我们可以创建一个CallbackContext参数的函数或者直接lambda表达式
public class inputContral : MonoBehaviour
{public InputAction mouseClick;public InputAction inputaction;void Start() {mouseClick.Enable();mouseClick.started(cacllbake){print(进入事件鼠标点下去了);};mouseClick.performed func;mouseClick.canceled (cacllbake) {print(结束事件鼠标抬起来了);};}private void func(CallbackContext callbackContext) {print(触发了事件鼠标按下途中); } 下面则是之前的wasd的vector2的栗子 移动控制ReadValue();
public class InputControl : MonoBehaviour {public InputAction inputaction;private void Start() {inputaction.Enable();inputaction.performed OnInputPerformed;}private void OnInputPerformed(InputAction.CallbackContext context) {Vector2 inputVector context.ReadValueVector2();float ws inputVector.y;if (ws 0) {Debug.Log(W key pressed);}else if (ws 0) {Debug.Log(S key pressed);}}
}