InputSystem

  • 安装所需插件
  • 使用
    • 跳跃
    • 移动

安装所需插件

version 1.3.0
 Unity最初没有遇见到现在的多平台和多种多样的输入设备,最初的输入系统的设计很多需求难以满足所以推出了InputSystsem。
安装要求:
 Unity2019.4和.Net 4以上版本。
安装:
 直接到包管理器Window > Package Manager安装即可,安装后提示需要重启,重启后即可使用。
注意:
1、InputSystem与一部分Unity内置的功能尚不兼容,酌情使用,详情参考官方文档。
2、如果想要切换输入系统,可以到Edit > Project Settings > Player在Other Settings中可以选择两种输入方式中的任意一种使用,也可以同时使用。

使用

1、创建Input Actions组件

两种途径可以创建:
1、右键单击Create-->Input Actions创建

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

2、在想要控制的物体上挂载组件Player Input,如上图所示组件,之后绑定对应的Input Actions。

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

进入配置界面

点击加号分别创建Action Map,Action并绑定按键


如上图所示,Behavior有很多种模式,这里使用的Send Messages,使用此模式会调用下方所示信息中的方法。

跳跃

Will SendMessage() to GameOject: OnDeviceLost, OnDeviceRegained,OncontrolsChanged, OnJump

所以我们要想在按钮被点击时触发应有的事件,就需要创建对应的方法名的方法,创建了一个Player脚本文件并挂载到该物体上,创建如下脚本文件:

using UnityEngine.InputSystem;//需要引用的命名空间
using UnityEngine;public class PlayerController : MonoBehaviour
{public  void OnJump() {transform.Translate(Vector3.up);Debug.Log("跳跃");}}

运行后成功执行:

移动

更改Input Actions,添加一个Action,
Action Type为Value,Control Type为Vector 2
删除下方绑定

右键该Action

创建一个上下左右的组合

绑定对应的按键
创建如下脚本:

using UnityEngine.InputSystem;
using UnityEngine;public class PlayerController : MonoBehaviour
{void OnMove(InputValue value){Debug.Log(value.Get<Vector2>());}
}

通过测试我们可以发现输出为:

所以移动代码可以为:

using UnityEngine.InputSystem;
using UnityEngine;public class PlayerController : MonoBehaviour
{public float MoveSpeed;void OnMove(InputValue value){transform.Translate(value.Get<Vector2>()*MoveSpeed*Time.deltaTime);}
}

但是这种情况下并不能实现连续移动,因为事件只能在按键按下时响应一次。
但是根据根据其数值输出按下为1抬起为0,我们或许可以这样做来完成连续移动:

using UnityEngine.InputSystem;
using UnityEngine;public class PlayerController : MonoBehaviour
{public float MoveSpeed;public Vector2 move;void OnMove(InputValue value){move= value.Get<Vector2>() * MoveSpeed * Time.deltaTime;}private void Update(){transform.Translate(new Vector3(move.x,0,move.y));}
}

【Unity】InputSystem相关推荐

  1. 【Unity】第三人称射击游戏开发过程之瞄准状态设计(TPS.S.P1)

    [Unity]第三人称射击游戏开发过程之瞄准状态设计(TPS.S.P1) 设计整体的结构与模式 瞄准状态的设计 瞄准相机 瞄准状态 瞄准时的鼠标移动速度限制 瞄准点的处理 角色在瞄准状态下的旋转 瞄准 ...

  2. 【unity】解决 2d-extras 的 CustomRuleTileMenu 脚本报错的问题

    [unity]解决 2d-extras 的 CustomRuleTileMenu 脚本报错的问题 参考文章: (1)[unity]解决 2d-extras 的 CustomRuleTileMenu 脚 ...

  3. 【Unity】 结合DoTween制作抛物线效果

    [Unity] 结合DoTween制作抛物线效果 概要 public partial class EMath {public static Vector3 Parabola(Vector3 start ...

  4. 【Unity】Unity 基本介绍

    什么是Unity引擎 Unity是一款跨平台的游戏引擎,包含以下系统:渲染引擎.物理引擎.碰撞检测系统.音效引擎.脚本引擎.动画系统.人工智能.网络引擎.场景管理等.Unity提供了丰富且强大的各类功 ...

  5. 【Unity】关于U3d与bip骨骼适配

    [Unity]关于U3d与bip骨骼适配 http://blog.csdn.net/kiki110120/article/details/50371662 写在2015/12/21 1.Generic ...

  6. 【Unity】如何删除不要的Tile Palette(瓦片地图)(遇到新的问题就继续更新2021.4.29)

    [Unity]解决Tilemap碰撞常见问题 写在前面的话 前置条件(阅读以下内容需要掌握的知识) 如何删除Tile Palette 不理解 写在前面的话 咱也不喜欢废话,图片和方法我都会特别标注出来 ...

  7. 【Unity】Unity内存管理与优化(一)内存域、堆栈、垃圾回收、内存泄漏、内存碎片

    文章目录 Unity内存 内存域 - 托管域 - 本地域 - 外部库 - 跨桥操作 堆和栈 - 栈 - 堆 - 堆栈的使用 垃圾回收 - Mono内存分配过程 - 内存泄漏 - 内存碎片 - 运行时垃 ...

  8. 【Unity】Unity C#基础(十五)implicit 隐式类型转换、explicit 显式类型转换

    文章目录 implicit 隐式类型转换 Explicit 显式类型转换 总结 implicit 隐式类型转换 implicit关键字用于声明隐式的用户自定义的类型转换运算符. 如果可以确保转换过程不 ...

  9. 【Unity】Unity 2D游戏开发(一)U2D基础功能

    文章目录 Unity 2D游戏开发基础知识 Animation动画 SortingLayer层排序 Physics 2D物理2D Rigidbody 2D刚体 示例 1.点击鼠标发出子弹 2.子弹打中 ...

最新文章

  1. Chemistry.AI | 基于卷积神经网络(CNN)预测分子特性
  2. Android开发出现Warning:Gradle version 2.10 is required. Current version is 2.8
  3. esxi管理端口_网工知识角|一分钟轻松了解华为端口安全机制
  4. 天池 在线编程 放小球(动态规划)
  5. Java中String类中compareTo( )方法
  6. 优秀!303篇论文获2020年度“优秀博士学位论文”!
  7. mysql主动自增可以_Mysql join联表及id自增实例解析
  8. flask的janja模板
  9. 《iOS应用软件设计之道》—— 2.5 何时画草图
  10. 全息营销话题提纲(2-1)--王甲佳全息营销系列15
  11. 数格子算面积的方法_面试小学数学经典教案:《什么是面积》
  12. latex 箭头_Pandoc上手以及如何使得latex文件转换为Docx文件(MAC)
  13. python计算信息增益_利用Python提取ABAQUS的计算结果(ODB)信息、体积、应变等变化(一)...
  14. 今年过年收大礼,劼哥带你进阿里
  15. 通过SLD_BODY动态改变geoserver的图层样式
  16. 即时通讯系统————基于TCP协议的C/S架构(Client)
  17. 加密技术——对称与非对称加密技术简述
  18. WebRTC学习实现视频
  19. 乐视X520(乐2 全网通)一键刷机教程
  20. 注册流程(分离HLR/HSS)

热门文章

  1. delphi7源码编译安装oracle access控件ODAC9.3.8
  2. PS流详解(载荷H264)
  3. oracle prompt出错,Oracle 用 sqlprompt 修改 sqlplus 提示符
  4. 【iPhone4s降级】2021年初自制固件降级IOS6.1.3
  5. 小程序----分账功能开发
  6. 蓝桥杯同一类型题目汇总
  7. 睿智融科完成上市辅导:无缘科创板后转向创业板,华兴资本押错注
  8. webrtc USB摄像头
  9. [ XSS-labs通关宝典 ] xss-labs 通关宝典之 less1 - less5
  10. 利用NoneBot结合酷q打造qq机器人