Unity 学习笔记-新输入系统

84 阅读1分钟

新输入系统

优点

  • 灵活配置:可针对不同设备、场景定制输入映射,适配多平台多设备。
  • 开发高效:简洁 API 降低开发难度,提高效率,利于集中精力做核心开发。
  • 监听强大:轻松监听各类输入动作,支持组合键、摇杆等复杂操作。
  • 动态切换:能根据设备实时切换控制模式,提升玩家体验。
  • 性能优化:高效管理输入事件,降低开销,保障游戏流畅。
  • 跨平台强:良好兼容性,一套配置适配多平台。
  • 适应未来:扩展性好,能适应 VR、AR 等新兴设备。

启用方式

安装

  • Project Settings - Player
    • Other Settings - Configuration - Active Input Handling
  • Package Manager
    • 安装Input System

添加资源

  • Assets - 右键Create - Input Actions

    image_WcYnv2zNh2.png

编辑输入映射

image_GSdYFJpkKu.png

创建C#类文件

image_TIM5_UId8j.png

  • 勾选上Generate C# Class
  • 确认下面三个信息后点Apply

应用

处理移动输入

public class GameInput : MonoBehaviour
{
    private GameControl gameControl;

    private void Awake()
    {
        // 实例化输入控制并启用Player(Action Map)
        gameControl = new GameControl();
        gameControl.Player.Enable();
    }

    public Vector3 GetDirInput()
    {
        // 读取Player(Action Map)下Move(Action)的输入值
        var inputVec = gameControl.Player.Move.ReadValue<Vector2>();
        // 用输入值构造三维向量并返回
        var moveDir = new Vector3(inputVec.x, 0, inputVec.y);       

        return moveDir;
    }

}