Unity Input System自动生成配置

参考视频

创建及配置新输入系统 New Input System|Unity2022.2 最新教程《勇士传说》入门到进阶|4K_哔哩哔哩_bilibili

ProjectSettings设置

Unity编辑器菜单栏选择Edit->Project Settings->Player->Other Settings ,将Api Compatibility Level 下拉列表选项改为**.Net Framework** ,再将Active Input Handling 下拉列表选项改为Both (Active Input Handling下拉列表选项可能有时候会没有,不懂是bug还是啥,此时可打开资源目录,将Library文件夹删除并重新打开项目使Active Input Handling出现。注:有Active Input Handling下拉列表时跳过删除Library文件夹步骤)。

导入Input System

Unity编辑器菜单栏选择Window->Package Manager->Unity Registry ,搜索Input System 并Install

自动生成配置文件

选择场景中任意一个物体,在Inspect 面板中选择Add Component->Player Input, 然后单击Player Input 组件的Create Actions ,选择保存路径(我的选择是放在Settings 文件夹下,文件命名PlayerInputControl )并设置配置文件名称即可生成一个包含游戏控制和UI控制的输入系统配置文件,生成的配置文件可自定义修改(修改完成记得点击Save Asset保存或开启Auto Save)

配置可通过代码调用的Player Input Action

选中生成的配置文件PlayerInputControl ,在Inspect面板中勾选Generate C# Class 并点击Apply即可生成一个配置类。

通过代码使用Input System

创建一个输入系统管理类CharacterInputSystem,在类中实例化一个PlayerInputControl对象,使用该对象获取其成员属性(代码参考如下,可依据实际情况做修改)

复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CharacterInputSystem : MonoBehaviour
{
    private PlayerInputControl inputActions;

    #region Bulit In Function

    void Awake()
    {
        if (inputActions == null)
        {
            inputActions = new PlayerInputControl();
        }
    }

    void OnEnable()
    {
        inputActions.Enable();
    }

    void OnDisable()
    {
        inputActions.Disable();
    }
    #endregion

    #region Key Setting

    public Vector2 PlayerMovement
    {
        get => inputActions.GamePlayer.Move.ReadValue<Vector2>();
    }

    public Vector2 CameraLook
    {
        get => inputActions.GamePlayer.Look.ReadValue<Vector2>();
    }

    #endregion
}

代码示例中的PlayerMovement 属性获取的值对应上图,同理CameraLook 属性对应Action Maps 为GamePlay 的Look的值。

相关推荐
Aman198414 小时前
Claude Code做Unity项目移植(一):从零散工具到团队式
unity·游戏开发·vibe coding·claude code·项目迁移
地狱为王16 小时前
Unity使用VoxLock实现语音隔离
unity·游戏引擎·音频处理·voxlock
Jmyd012319 小时前
博物馆数字展厅系统架构设计:实景采集到云渲染全链路
unity·系统架构·博物馆·数字展厅·博物馆数字化
weixin_424294671 天前
对于未加入 Script Execution Order 的脚本
unity
暴走约伯1 天前
【VFX工具链源码拆解 03】告别机械劳动(下):材质字典映射批处理与智能纹理槽识别
unity·游戏引擎·材质
Wanda12141 天前
机器人与机电一体化3D数字孪生机器-Day9
人工智能·3d·unity·机器人·数字孪生
暴走约伯1 天前
【VFX工具链源码拆解 01】总体架构:大型项目特效流程的程序化落地
开发语言·经验分享·3d·unity·架构·游戏引擎
平行云2 天前
建筑BIM/3D可视化轻量级实时评审与分享方案
unity·ue5·3dsmax·实时云渲染·云桌面·云游戏·建筑bim
2501_915106323 天前
Windows 上开发 Unity iOS,使用 KXBuild 进行真机调试、性能采样与打包 ipa
windows·vscode·unity·ios·个人开发·swift·敏捷流程
FFFFujige3 天前
【Unity】一个的Dots用Ruhanka踩坑记录
unity·游戏引擎