一、InputAction 参数 编写脚本挂载到物体上 public class Lesson7 : MonoBehaviour { [Header("Binding")] public InputAction move; [Header("1D Axis")] public InputAction axis; [Header("2D Vector")] public InputAction vector2D
playerInput.currentActionMap.FindAction("Jump").performed -= OnJump; playerInput.currentActionMap.FindAction("Move").performed -= OnMove; } public void OnJump(InputAction.CallbackContext callbackContext) { Debug.Log("Jump"); } public void OnMove(InputAction.CallbackContext callbackContext) {...
public void 鼠标屏幕坐标(InputAction.CallbackContext context) { 当前鼠标屏幕坐标位置 = context.ReadValue<Vector2>(); } public void 鼠标移动命令(InputAction.CallbackContext context) { switch (context.phase) { case InputActionPhase.Performed: if (context.interaction is PressInteraction) { if (射线...
private void OnMovePerformed(UnityEngine.InputSystem.InputAction.CallbackContext obj) { Vector2 moveDir = obj.ReadValue<Vector2>(); input_X = moveDir.x; input_Y = moveDir.y; if (input_X != 0 && input_Y != 0) { input_X = input_X * 0.7f; input_Y = input_Y * 0.7f; } in...
这个中的input.onActionTriggered 事件中包含所有的自定义按键回调,这里我写了一个Move的Vector2,四个按键WSAD,无论按下那个按键,这个事件都会被触发,所以,这个时候就需要进行一次判断处理。 代码,其实内部判断还是主要来源于,CallBackContext这个类中的属性
使用InputSystem 时的输入绑定 对应物体的移动轨迹 目前仍然只能返回0,1 为了使新版系统下的一共更平滑,可以自己实现一个插值逻辑。 privateVector2_input2DMove;privateVector2_cur2DMove;[SerializeField]privatefloatinterpolation;...publicvoidOnInputMove(InputAction.CallbackContextcontext){_input2DMove=context...
这里面可以拖拽对应的C#脚本,然后选择里面创建好的函数,像这样: 脚本里需要写与下面这种类似的函数: publicclassMyPlayerScript:MonoBehaviour{publicvoidFire(InputAction.CallbackContext context){ Debug.Log("Fire!"); } }
}publicvoidOnNormalAttachk(InputAction.CallbackContext ctx) { Debug.LogWarning("Normal Attack!"); } } 从Awake方法中可以直接获得所有定义的按键事件组合,然后把对应的处理函数交给performed以及cancelled处理。这样就完成了。 需要注意的是,这种方法需要先Enable对应的InputAction,否则不会工作。
输入 public Vector2 RawMovementInput { get; private set; } //X:横轴输入值 Y:纵轴输入值 public int NormInputX { get; private set; } public int NormInputY { get; private set; } private void Start() { playerInput = GetComponent<PlayerInput>(); } public void OnMoveInput(InputAction....
privatevoidStart(){selectAction.action.Enable();selectAction.action.performed+=SelectActivation;}privatevoidSelectActivation(InputAction.CallbackContextcontext){Debug.Log($"Phase {context.phase}");} Copy Additionally, for VR you may need a ray controller, teleport, and many other functionalities. For...