当前位置:   article > 正文

Unity——新输入系统Input System_unity input system

unity input system

1.安装

安装:

        直接到包管理器Window > Package Manager安装即可,安装后提示需要重启,重启后即可使用。

注意:

        在Project Settings中的Player设置里将Active Input Handling设置为Input System。

        需要将默认场景中的EventSystem中的Standalone Input Module变更为新的Input System UI Input Module组件。

2. 使用

1.创建

两种途径可以创建:

1.右键单击Create-->Input Actions创建 

2.在想要控制的物体上挂载组件Player Input后单击Create Actions创建。

2.进入配置界面创建Action

如果想要移动,跳跃等动作,可以双击创建创建的Input Actions或者选中此文件单击Edit asset

 进入配置界面

 点击 + 号创建ActionMaps,Actions并绑定按键

3.使用

1.需要引用的命名空间using UnityEngine.InputSystem;

2.使用wasd进行移动

  1. using UnityEngine;
  2. using UnityEngine.InputSystem;
  3. public class PlayController : MonoBehaviour
  4. {
  5. [SerializeField]
  6. private InputActionReference moveInput;//绑定PlayerMove/Move
  7. private void OnEnable()
  8. {
  9. moveInput.action.Enable();
  10. }
  11. private void OnDisable()
  12. {
  13. moveInput.action.Disable();
  14. }
  15. private void Update()
  16. {
  17. //检测是否按下wasd键
  18. //方法1:
  19. if (moveInput.action.WasPressedThisFrame())
  20. {
  21. Debug.Log("按下");
  22. }
  23. if (moveInput.action.WasReleasedThisFrame())
  24. {
  25. Debug.Log("抬起");
  26. }
  27. if (moveInput.action.WasPerformedThisFrame())
  28. {
  29. Debug.Log("按下+抬起");
  30. }
  31. //方法2:
  32. /*moveInput.action.performed += ctx =>
  33. {
  34. //移动
  35. transform.Translate(ctx.ReadValue<Vector2>());
  36. };*/
  37. }
  38. }

3.把代码挂载到对应的gameObject上

 

补充:自定义按键的更换(跳跃)

 1.跳跃

  1. using UnityEngine;
  2. using UnityEngine.InputSystem;
  3. using UnityEngine.UI;
  4. public class JumpManager : MonoBehaviour
  5. {
  6. [SerializeField]
  7. public InputActionReference jumpInput;
  8. private void OnEnable()
  9. {
  10. jumpInput.action.Enable();
  11. }
  12. private void OnDisable()
  13. {
  14. jumpInput.action.Disable();
  15. }
  16. private void Update()
  17. {
  18. if(jumpInput.action.WasPressedThisFrame())
  19. {
  20. Debug.Log("jump");
  21. }
  22. }
  23. }

2.更换按键

  1. using TMPro;
  2. using UnityEngine;
  3. using UnityEngine.UI;
  4. using UnityEngine.InputSystem;
  5. public class RebindButtons : MonoBehaviour
  6. {
  7. public InputActionReference jump;
  8. public JumpManager jumpManager;
  9. public Button jumpButton;
  10. public TextMeshProUGUI text;
  11. void Awake()
  12. {
  13. jump = jumpManager.jumpInput;
  14. }
  15. private void Start()
  16. {
  17. jumpButton.onClick.AddListener(ReBinding);
  18. }
  19. //更改按键
  20. private void ReBinding()
  21. {
  22. Debug.Log("-----");
  23. jump.action.Disable();
  24. var rebind = jump.action.PerformInteractiveRebinding(0)
  25. .OnCancel(
  26. operation =>
  27. {
  28. jump.action.Enable();
  29. })
  30. .OnComplete(
  31. operation =>
  32. {
  33. Debug.Log("OnComplete");
  34. jump.action.Enable();
  35. });
  36. rebind.Start();
  37. }
  38. }

(更换按键步骤:点击按钮,选择并按下选择的按键,点击刚刚更换的按钮就可以执行了)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/118791
推荐阅读
相关标签
  

闽ICP备14008679号