(M)unity代码部分c#脚本的创建与添加,new input system的配置,添加input action配置表

使用新的输入系统在 Unity 中构建第三人称控制器 如果你随机挑选几款游戏,每款游戏可能会有不同的艺术风格和机制、不同的故事,甚至根本没有故事,但它们都有一个共同点:所有游戏都需要读取和处理输入来自键盘、鼠标、游戏手柄、操纵杆、VR 控制器等设备。构建第三人称控制器。在这篇文章中,我将向您展示如何在 Unity 中使用新的Input System 驱动的跟随摄像头 Cinemachine 软件包以及由 Unity Technologies 的另一个强大软件包。 阅读详情

文件管理

在这里插入图片描述创建代码文件夹,创建人物板块,创建c#脚本,等待自动编译

2.代码添加到人物中(或拖拽)

在这里插入图片描述
3.添加后双击进入代码编辑器

4.unity升级为新的input system

新的Input System可以更方便地处理不同的输入设备,并根据项目需求进行配置和映射,提高游戏的灵活性和适应性

①
在这里插入图片描述

②
在下边active input handling中选择new的那个,apply,unity自动重启

③
找到这个new package,在window->package manager中

在这里插入图片描述

④
点击下边install,等待安装

⑤
设置new input system的配置文件的例子

1.在文件中创建输入系统文件夹

在这里插入图片描述

法一 手动配置input action配置表

2.里面添加input actions,在最最下边,创建,即为上图中的input ctrl文件

在这里插入图片描述

3.双击input ctrl文件打开配置窗口,可以添加需要检测的按键

action map中的不同条件可以在进行切换时候转化成不同的操作内容(旁边的actions)

在这里插入图片描述
例如这样设置一个map叫gameplay,他对应的动作叫movement,动作类型value,控制类型二维向量
点击该movement action后边的加,添加上下左右组合,可以通过对这四个完成按键的设置
这里的按键设置时的监听,连着什么输入设备就监听什么,手柄键盘之类

在这里插入图片描述
可以通过添加配置表来区分输入设备,方便快速筛选显示,键盘按键不会被区分,但是手柄配置可以

在这里插入图片描述
在这里插入图片描述
//(删掉这个示例用的input ctrl文件了)

法二 用unity自动生成默认的input action配置表

为小人添加Player Input组件(这是new input system下的组件,可以完成人物基本的输入配置)
将这个文件放在input system文件夹下,创建,可以看见这个文件已经有了基本的按键配置

在这里插入图片描述
在这里完成配置

在这里插入图片描述
删除

法三 代码完成配置

1.对这个input actions文件添加c#文件(打勾,apply)
在这里插入图片描述
创建结果如下

在这里插入图片描述

2.在小人身上挂着的脚本上加入这个类的实例,如此可以调用这个类中的方法

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
//添加新输入系统的库如上
public class PlayerController : MonoBehaviour
{

    public PlayerInputControl inputControl;

    //进入游戏,创建实例
    private void Awake()
    {
        inputControl = new PlayerInputControl();
    }

    //当前物体被启用时调用onenable()
    private void OnEnable()
    {
        inputControl.Enable();
    }
    //然后start
    //物体关闭,ondisable
    private void OnDisable()
    {
        inputControl.Disable();
    }
}

3.实现读取移动的数值

也就是读取这个二维向量,数值在PlayerInputControl实例下的map下的action中,调用读取数值方法,读取二维向量,传入到新创建的public Vector2 inputDirection中

在这里插入图片描述

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
//添加新输入系统的库如上
public class PlayerController : MonoBehaviour
{

    public PlayerInputControl inputControl;
    //创建public变量,可以显示在人物的inspector中
    public Vector2 inputDirection;

    //进入游戏,创建实例
    private void Awake()
    {
        inputControl = new PlayerInputControl();
    }

    //当前物体被启用时调用onenable()
    private void OnEnable()
    {
        inputControl.Enable();
    }
    //然后start
    //物体关闭,ondisable
    private void OnDisable()
    {
        inputControl.Disable();
    }
    //刷新时读取value
    private void Update()
    {
        inputDirection = inputControl.Gameplay.Move.ReadValue<Vector2>();
    }
}

可以看到play后按上下左右后inputDirection变量会变化

在这里插入图片描述

在Unity中,InputActions 打开InputActions资源,在Inspector窗口中点击“+”按钮以添加新的动作。每个动作代表一个特定的用户输入,如按下按钮或移动轴。 阅读详情

相关推荐

Unity 新的输入系统Input System(二)

前面一篇大致简单的介绍了下Input System,并且通过官方的 SimpleDemo_UsingPlayerInput 来了解了PlayerInput组件的使用。接下来让我们通过其他几个Demo来了解下Input System的其他几种使用方法。 首先我们先来看看SimpleDemo_UsingActionAsset这个Demo,相比SimpleDemo_UsingPlayerInput,会...

王王王渣渣的博客 1万+

2022-09-09 Unity InputSystem3——InputAction

许多控件没有精确的静止点(也就是说,当控件位于中心时,它们并不总是精确地报告(0,0)。Stick Deadzone:摇杆死区处理器缩放 Vector2 控件(如摇杆)的值,以便任何幅值小于最小值的输入向量都将得到(0,0),而任何幅值大于最大值的输入向量都将规格化为长度 1。类似 Hold,但是它在按住时间大于等于 Max Tap Duriation 的时候,并不会立刻触发 Performed,而是会在松开的时候才触发 Performed。主要用于状态连续更改的输入,例如鼠标的移动,手柄的遥感。

zheliku的博客 7550

Unity上接入手柄,手柄控制游戏物体移动

也就是设置actions绑定到手柄对应的按键上。创建Actions Maps的面名字为Gameplay,添加两个Actions,物体增大键Grow(绑定到手柄的A键)。2、安装成功后插入手柄到windows上,打开菜单栏上【window】--【Analysis】--【Input Debuger】 进入Input Debug界面,可以看到手柄设备能被Unity识别。3、双击【XinputControllerWindows】进入手柄测试界面,按下手柄上不同的键,Value列会用不同的相应,表明手柄能正常使用。

码农从0到1 3540

Unity新输入系统 之 InputAction(输入配置文件最基本的单位)

InputAction

咩咩的博客 3491

Unity RTS项目导入配置全攻略:从环境准备到问题排查

在游戏开发中,项目配置与环境搭建是开发者面临的首要挑战,尤其对于依赖复杂、模块众多的即时战略(RTS)游戏项目。其核心原理在于确保代码、资源与引擎环境之间的兼容性,涉及Unity版本管理、包依赖解析、渲染管线适配及输入系统配置等多个技术环节。良好的项目配置能显著提升开发效率,避免将时间浪费在环境调试上,是进行后续游戏逻辑开发、性能优化和团队协作的基础。本文以典型的Unity RTS教程项目为切入点,深入解析如何系统化地完成项目导入、环境配置与常见问题排查,涵盖Unity版本选择、包管理器使用、URP/HDR

weixin_34290096的博客 531

Unity Input System交互模块深度解析:从长按蓄力到连击判定的工程实践

在游戏开发中,输入处理是连接玩家操作与游戏逻辑的核心桥梁。传统的输入检测方式往往依赖过程式代码,通过状态标志和计时器手动管理复杂输入序列,导致代码臃肿且难以维护。Unity Input System引入的交互(Interactions)机制,本质上是一套基于状态机的输入模式识别器,它将原始输入事件转化为高级语义意图,如点击、长按、双击等。这一设计极大地提升了输入逻辑的清晰度与可维护性,其技术价值在于通过声明式配置替代繁琐的手动状态管理,让开发者能更专注于游戏玩法本身。在动作游戏、角色扮演等应用场景中,复杂的

weixin_34189116的博客 364

Unity新输入系统(Input System)实战:从配置到多状态管理

在游戏开发中,输入管理是连接玩家操作与游戏逻辑的核心桥梁。其原理在于将物理设备的原始信号抽象为逻辑动作,实现设备无关的指令解析。这项技术的价值在于大幅提升代码的可维护性、支持跨平台无缝适配以及简化复杂的输入逻辑处理。在应用场景上,无论是PC端的键盘鼠标、各类游戏手柄,还是移动端的触摸屏,一个健壮的输入系统都是实现流畅操控体验的基础。Unity的新输入系统(Input System)正是为此而生,它通过Action Maps、Bindings和Control Schemes等核心概念,将输入从“事件响应”提升

weixin_30566111的博客 378

基于Gemma-3-270m与Unity的本地化智能NPC对话系统实现

大语言模型(LLM)通过海量数据训练,掌握了理解和生成人类语言的能力,其核心原理是基于Transformer架构的注意力机制,对上下文信息进行编码和解码。这一技术为自然语言处理任务带来了革命性突破,其工程价值在于能够以极低的边际成本,实现高度动态和个性化的文本交互。在游戏开发领域,这为创造具有深度沉浸感的虚拟世界提供了全新可能。通过将轻量级开源模型(如Gemma-3-270m)进行本地化部署,并与主流游戏引擎(如Unity)深度集成,开发者可以构建出脱离网络依赖、低延迟、高可控的智能NPC对话系统。该系统利

472

unity——C#

假如我们想要异步的加载一个场景,就需要使用到协程,协程与C#的异步不同但相似,都是为了解决线程阻塞的问题。使用协程必须引入using System.Collections;如图是一个协程的基本框架,也是异步创建场景的实现。获取加载进度:asyncLoad.progress,一般该操作放在Update函数中,加载进度是从0到0.9。场景自动跳转设置:asyncLoad.allowSceneActivation=true/false(默认是true表示自动跳转)

2603_95759313的博客 301

Unity第三人称游戏相机:Cinemachine Free Look配置全攻略

在游戏开发中,相机系统是连接玩家与虚拟世界的核心组件,其设计直接决定了游戏的沉浸感与操作体验。传统手动控制相机的方式需要开发者编写复杂的跟随、旋转与碰撞检测逻辑,不仅开发效率低,且难以处理镜头抖动、穿模等常见问题。Unity推出的Cinemachine智能相机系统,通过虚拟相机、轨道与输入解耦等设计,将相机行为抽象为可配置的模块,让开发者能快速构建稳定、灵活的镜头逻辑。其核心组件Free Look Camera专为第三人称视角设计,采用三轨道环形结构,可依据视角仰角在不同预设轨道间平滑插值,完美适配角色移动

weixin_33797791的博客 394

Unity开发Apple Vision Pro应用:从环境搭建到首个交互Demo

空间计算正重新定义人机交互的边界,其核心在于将数字内容无缝融入物理世界,实现虚实融合的沉浸式体验。这一技术依赖于高精度追踪、实时渲染和空间锚定等关键技术,为教育、设计、娱乐等领域带来变革性应用。Unity作为领先的实时3D开发平台,通过其成熟的工具链和生态,为开发者提供了构建空间计算应用的高效路径。在Vision Pro开发中,Unity的PolySpatial插件是关键桥梁,它负责将Unity内容与visionOS系统合成器对接,并处理眼动追踪、手势识别等核心输入。本文聚焦于如何从零开始配置Vision

weixin_30613343的博客 419

Unity跨平台输入系统实战:从核心概念到多平台适配框架

在游戏开发中,输入系统是连接玩家操作与游戏逻辑的核心桥梁,其设计直接影响着游戏的操控体验与跨平台兼容性。传统的输入管理方式往往面临代码耦合度高、平台适配复杂等挑战。Unity Input System通过引入动作(Action)、控制方案(Control Scheme)等抽象概念,将具体的硬件输入与游戏逻辑解耦,实现了输入处理的统一与标准化。这套系统允许开发者定义一套与设备无关的操作逻辑,然后为不同平台(如PC键鼠、游戏手柄、移动触屏)绑定相应的输入映射,从而极大地提升了开发效率和代码的可维护性。其技术价值

weixin_30627341的博客 327

Unity开发Android桌面悬浮窗精灵:透明Activity与WindowManager实战

在移动应用开发中,混合开发技术结合了游戏引擎的丰富表现力与原生平台的系统级能力,为创新交互提供了可能。其核心原理在于通过跨平台引擎(如Unity)处理复杂图形渲染与逻辑,同时借助原生系统API(如Android的WindowManager)实现窗口管理与系统集成。这种技术方案的价值在于能够突破传统应用边界,创建常驻、可交互的系统级组件,广泛应用于桌面小工具、动态壁纸、品牌营销互动等场景。本文聚焦于Unity与Android原生开发深度整合,通过透明背景Activity与系统悬浮窗机制,实现一个可常驻桌面的3

weixin_33858336的博客 296

unity常见面试题

接口是一种完全抽象的类型,它只定义了成员的签名,但没有提供成员的实现。接口定义了对象应该具有的方法、属性和事件。抽象类是一种包含了抽象成员(方法、属性、索引器、事件)的类,它可以包含抽象成员和非抽象成员的实现。抽象类可以包含方法的实现,也可以包含字段和构造函数等。

yasin的博客 1万+

【unity游戏开发之InputSystem——02】InputAction的使用介绍(基于unity6开发介绍)

【unity游戏开发之InputSystem——02】InputAction的使用介绍(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4260

【Allegro学习笔记】常规标贴封装创建-0402封装创建实例

摘要 本文主要介绍如何使用Allegro制作表面贴装封装。 所使用的软件 使用Allegro制作常规贴片封装主要使用的软件有Pad Designer和Allegro 1 0402类封装制作 1.1 0402类封装焊盘分析 0402封装尺寸图如图1...

Honglong 1万+

C#与Unity构建工业设备仿真系统:从模型驱动到数字孪生

设备仿真是工业自动化与数字孪生领域的核心技术,它通过软件模拟真实设备的运行状态与行为逻辑,为方案验证、操作培训与算法测试提供安全、高效的虚拟环境。其核心原理在于建立物理设备与虚拟模型之间的数据映射与状态同步。在技术实现上,C#凭借其强大的生态与.NET框架,常被用于开发上位机通信与逻辑控制模块;而Unity引擎则以其卓越的实时3D渲染与交互能力,成为构建高保真可视化界面的理想选择。两者的结合,能够高效打通从数据采集、协议解析到3D驱动的全链路,实现虚实同步。这一技术组合尤其适用于需要直观交互与沉浸式体验的工

weixin_33849215的博客 431

实战避坑:在STM32上移植AUTOSAR BSW时,MCAL、ECU抽象层和服务层配置有哪些常见‘雷区’?

本文深入解析在STM32上移植AUTOSAR BSW时MCAL、ECU抽象层和服务层配置的常见陷阱,包括时钟树配置差异、GPIO电气特性问题、定时器资源冲突等实战经验。特别针对AUTOSAR架构在资源受限MCU上的特殊挑战,提供具体解决方案和优化策略,帮助开发者规避移植过程中的典型错误。

weixin_30258901的博客 561

Input System的简单应用

通过前面两篇我们简单的了解了一下Input System,接着就是要学以致用,这样才能了解的更加透彻。

王王王渣渣的博客 3781

Altium Designer (AD) 设计软件高频面试题及参考答案(3万字长文)

在Altium Designer(AD)中,设计复用是一种关键的策略,它允许设计师在多个项目中重复使用经过验证的设计元素,如原理图符号、PCB布局、元器件封装和设计规则集。在Altium Designer (AD) 中,手动布线和交互式布线是PCB设计中常见的两种布线模式,它们提供了设计师对布线路径的直接控制,特别是在处理复杂或关键信号路径时尤为有用。在Altium Designer (AD) 中进行电路级仿真是一项重要的设计验证步骤,它允许设计师在实际制造之前对电路的行为进行预测和分析。

大模型大数据攻城狮的专栏 4782

第4章:外包接单全攻略——Upwork/电鸭/猪八戒从0到第一单

> - 三个外包平台的详细对比(适合人群、抽成、防骗) > - 每个平台的Profile优化模板(可直接复制修改) > - 用AI写Proposal的3个Prompt模板(我实测回复率提升50%) > - 报价策略与防骗指南(附5个危险信号) > - 我的第一单复盘:从注册到收款的全过程(含聊天记录脱敏)

sfishfly的博客 574

Unity C#委托与事件:从基础概念到实战解耦与内存管理

在C#编程中,委托(Delegate)是一种类型安全的函数指针,它定义了方法的签名,允许将方法作为参数传递或存储。其核心原理是基于.NET的MulticastDelegate类,支持多播,即一个委托实例可引用多个方法。事件(Event)则是对委托的封装,遵循发布-订阅模式,提供更好的封装性,确保只有发布者能触发通知。这一机制的技术价值在于实现组件间的解耦,提升代码的可维护性和扩展性,是构建模块化、事件驱动架构的基础。在Unity开发中,委托与事件广泛应用于UI交互、游戏状态管理、输入系统封装等场景,能有效替

weixin_34007020的博客 402

LeRobot 入门教程(九)使用 Android、iOS 手机控制机械臂

本指南详细介绍了如何使用iOS/Android手机远程控制机器人。内容包括:1)安装依赖(pip install leroobot[phone]);2)平台支持说明(iOS需HEBI Mobile I/O应用/Android用WebXR);3)手机方向校准方法;4)控制模式设定(按钮/手势);5)示例脚本使用(遥操作/数据记录/回放/策略评估);6)关键参数配置(运动学/安全限制/夹爪控制);7)故障排查方法。支持ROS2集成,提供URDF文件处理、逆向运动学计算和实时可视化功能,适用于物理机器人和仿真环境

2506_90492529的博客 1658
上一篇: (M)rule tile 以及动态瓦片绘制,组件添加以及常见组件(碰撞,物理引擎)
下一篇: (M)刚体运动(移动和翻转)
MIMO. mimo
博客等级 码龄6年 308粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值