Unity 中 Input Actions 使用

Unity 中 Input Actions 使用笔记

一、Input Actions 简介

Input Actions 是 Unity 新的输入系统,它提供了一种更灵活、强大且统一的方式来处理玩家输入,支持多种输入设备,如键盘、鼠标、手柄等,能方便地管理和配置输入操作。

二、代码示例说明

以下代码是在 Unity 项目中使用新输入系统(Input System)的 GameInput 脚本示例:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GameInput : MonoBehaviour
{
    private GameControl gameControl;

    private void Awake()
    {
        gameControl = new GameControl();
        gameControl.Player.Enable();
    }

    public Vector3 GetMovementDirectionNormalized()
    {
        Vector2 inputVector2 = gameControl.Player.Move.ReadValue<Vector2>();

        Vector3 direction = new Vector3(inputVector2.x, 0, inputVector2.y);
        direction = direction.normalized;

        return direction;
    }
}

三、Input Actions 使用步骤解析

(一)创建输入动作资产

在 Unity 中,需先通过 Assets -> Create -> Input Action 创建一个输入动作资产(如代码中的 GameControl)。在该资产中可定义各种输入动作,比如移动、跳跃、攻击等。

(二)定义动作映射(Action Map)

  1. 在创建好的 GameControl 资产中,默认有一个名为 Default 的动作映射。可根据项目需求重命名或添加新的动作映射,比如创建一个名为 Player 的动作映射,专门用于处理玩家相关的输入操作。
  2. 动作映射就像是一组输入操作的集合,可以为不同的游戏场景或角色控制模式设置不同的动作映射。

(三)添加动作(Action)

在 Player 动作映射下,添加所需的动作。例如:
移动(Move):选择动作类型为 Value,并设置其类型为 Vector 2,用于接收玩家的二维移动输入(如 WASD 或方向键)。

(四)绑定输入设备

为每个动作添加输入绑定。以 Move 动作为例:
对于键盘输入,可绑定 W、A、S、D 键或方向键,将其映射到 Move 动作的 Vector 2 值上。
若支持手柄操作,可绑定手柄的左摇杆,使其也能控制 Move 动作。

(五)生成 C# 脚本

GameControl 资产的 Inspector 面板中,点击 Generate C# Class 按钮。这将自动生成一个 C# 脚本,该脚本包含了与配置的输入动作相关的类和方法,用于在项目中访问和处理输入。

(六)脚本中初始化与启用

  1. 声明变量:在脚本中声明一个对应输入动作资产类的变量,如 private GameControl gameControl; ,用于存储和操作输入动作。
  2. 初始化与启用:在 Awake 方法中,使用 gameControl = new GameControl(); 实例化输入动作资产对象,然后通过 gameControl.Player.Enable(); 启用特定的输入动作组(这里是 Player 组)。启用后,系统才能接收和处理相关输入。

(七)读取输入值

GetMovementDirectionNormalized 方法中展示了读取输入值的过程:

  1. 获取二维输入向量Vector2 inputVector2 = gameControl.Player.Move.ReadValue<Vector2>(); 这行代码从 Player 动作组的 Move 动作中读取当前的输入值,返回一个二维向量,通常对应水平和垂直方向的输入。
  2. 转换为三维方向向量并归一化:将二维输入向量转换为三维方向向量 Vector3 direction = new Vector3(inputVector2.x, 0, inputVector2.y); ,并通过 direction = direction.normalized; 对其进行归一化处理,确保向量长度为 1,用于控制角色移动等场景,使移动速度保持稳定。

四、Input Actions 的优势

  • 统一管理:Input Actions 可将不同类型的输入设备(键盘、鼠标、手柄等)的输入操作统一管理,在一个地方定义和配置所有输入相关逻辑,提高开发效率。
  • 灵活性高:可以方便地修改输入映射,比如重新定义某个按键对应的游戏动作,而无需大量修改代码。同时,支持热插拔输入设备,能在运行时动态检测和响应新连接的设备。
  • 更好的扩展性:适合开发复杂的游戏交互系统,便于添加新的输入动作和功能,适应不同游戏场景和玩法的需求。
内容概要:本文针对功率阶跃工况下光储虚拟同步发电机(VSG)并网系统存在的电能质量问题,提出一种自适应治理策略。通过Simulink搭建完整的光储VSG并网系统仿真模型,重点研究在功率突变条件下系统出现的频率波动、电压畸变及谐波增加等动态问题。所提策略结合VSG的惯量与阻尼特性,设计了参数自适应调节机制,实现对系统动态响应过程的有效调控,显著提升了并网电流波形质量与频率稳定性,增强了系统在强扰动工况下的鲁棒性与电能质量治理能力。; 适合人群:具备电力电子、自动控制理论及新能源并网技术基础的科研人员、电气工程及相关专业的硕士/博士研究生,以及从事微电网、储能系统、VSG控制研发的工程技术人员。; 使用场景及目标:①用于分析光储系统在功率阶跃等动态工况下的并网特性与电能质量演变规律;②为VSG关键控制参数(如惯量、阻尼)的自适应整定提供设计思路与仿真验证平台;③支撑高水平学术论文复现、科研课题攻关及实际工程项目的前期控制策略验证。; 阅读建议:建议结合Simulink仿真模型深入理解控制策略的实现逻辑,重点关注VSG惯量阻尼协同调节的自适应机制设计,可通过设置不同功率阶跃幅度、光照强度变化及负载投切等多场景进行仿真测试,全面评估策略的动态性能与适用边界。
内容概要:本文系统研究了基于ARIMA-CNN-LSTM的混合时间序列预测模型,并提供了完整的Python代码实现。该模型融合传统统计方法ARIMA与深度学习模型CNN和LSTM的优势,充分发挥ARIMA在捕捉线性趋势与季节性特征方面的能力,以及CNN和LSTM在提取局部特征和建模长期依赖关系方面的强大性能,从而有效提升对复杂非线性时间序列的预测精度。研究涵盖了数据预处理、模型构建、参数调优、训练与预测全流程,并通过实际案例验证模型在风电、光伏、负荷、电价等能源领域预测任务中的优越表现。文档还整合了电力系统、路径规划、信号处理等多个科研方向的仿真资源与代码示例,凸显其在学术研究与工程实践中的广泛应用价值。; 适合人群:具备一定Python编程基础和机器学习理论知识,从事科研或工程技术工作的研究人员,特别适用于关注时间序列分析、深度学习建模的硕士生、博士生及行业从业者。; 使用场景及目标:①深入理解并掌握ARIMA与深度学习模型(如CNN、LSTM)融合的建模范式与技术细节;②应用于能源领域中风电出力、光伏发电、电力负荷及电价等关键变量的高精度预测;③为科研课题、学术论文复现、工程项目优化等提供可靠、可复用的代码框架与技术支持。; 阅读建议:建议结合所提供的Python代码进行动手实践,重点剖析数据预处理流程、混合模型架构设计及超参数调优策略,同时可参考文档中其他相关研究案例以拓宽技术视野和应用场景认知。
内容概要:本文围绕谐振式双有源桥(DAB)变换器,深入研究了一种无需电流传感器的模型预测控制(MPC)方法,并基于Simulink平台完成了完整的仿真实现。该方法通过构建精确的系统数学模型,替代传统依赖物理电流传感器的状态观测方式,有效降低了系统硬件成本与布线复杂度,同时提升了系统的可靠性和集成度。研究重点涵盖系统建模、预测模型构建、目标函数设计、约束条件处理以及控制律求解等关键环节,充分体现了模型预测控制在电力电子高频软开关变换器中的高动态响应、高稳态精度与强鲁棒性的优势。文中通过仿真验证了该无传感MPC策略在不同工况下的控制性能,展示了其在抑制电流冲击、提升能量转换效率及增强系统稳定性方面的良好表现。; 适合人群:电力电子、自动化、电气工程及其相关专业的硕士研究生、博士生、高校科研人员,以及从事DAB变换器拓扑设计、先进数字控制算法开发与新能源电能变换系统研发的工程技术人员。; 使用场景及目标:① 掌握谐振式DAB变换器的工作原理及其无传感控制的设计思路与实现路径;② 深入理解模型预测控制在电力电子系统中的建模方法、优化求解过程与仿真验证流程;③ 为开展无传感器驱动、高频隔离DC-DC变换、数字电源控制等前沿课题提供可复现的技术方案与仿真基准平台。; 阅读建议:建议结合提供的Simulink仿真模型同步学习,重点关注状态观测器设计与预测模型的耦合机制,动手调整系统参数与控制权重以观察动态响应变化,深化对MPC控制机理的理解,并可进一步拓展至其他软开关拓扑或融合人工智能优化算法进行性能提升研究。
内容概要:本文详细介绍了基于非线性反步法与Lyapunov-MPC模型预测控制相结合的自主水下航行器(AUV)轨迹跟踪控制方法,并完整实现了包含经典Fossen动力学模型的Matlab仿真代码,复现了高水平期刊研究成果。该方法通过反步法逐级构造控制律,结合Lyapunov函数确保系统全局渐近稳定性,同时引入模型预测控制(MPC)优化未来动态行为,有效提升控制器在复杂海洋环境下的轨迹跟踪精度、抗干扰能力与系统鲁棒性。整个设计充分体现了非线性控制理论与现代优化控制策略的深度融合。; 适合人群:具备自动控制原理、非线性系统分析、现代控制理论基础,熟悉Matlab/Simulink仿真工具,且从事水下机器人、无人航行器、航空航天、智能控制等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于自主水下航行器、无人机等强非线性系统的高精度轨迹跟踪控制器设计与仿真验证;②支撑高水平学术论文复现、科研课题攻关或实际工程原型开发,掌握先进复合控制策略的设计流程与实现技巧;③深入理解反步法、Lyapunov稳定性理论与模型预测控制三者协同设计的理论依据与工程应用价值。; 阅读建议:建议读者结合Fossen动力学建模理论,逐步调试Matlab代码,重点关注控制器设计步骤、Lyapunov函数构造过程及MPC滚动优化实现细节,配合相关文献进行对比分析,以深化对非线性控制系统设计与仿真验证全过程的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值