unity 最新输入系统Input system简介,并用其设置Xbox(plus:unity package导入详解)
unity推出了最新的输入系统Input system,不敢说一定比老版本Input manager好。键盘输入的话,个人觉得还是老的输入系统好,不过如果是Xbox手柄的话,个人认为新系统坐实舒服!就让喜新厌旧的我带大家看看吧哈哈
这里是官方英文文档
首先,确保你的项目是Unity 2019.1以上版本, 并且API设置为 .NET 4 runtime( 2021/1/23更新)
然后导入package:windows->package manager
然后选择Unity Registry
Advanced中选中Show preview packages
之后你可以寻找或者自主搜索Input System,右下角会显示download,下载完毕后import即可(我已经导入过了所以这里只显示remove(移除))
点击确定后让unity重启(2021/1/23更新)
Tip:记得检查一下你的Edit->Project Settings->Player->Other Settings->Active Input Handing,它默认应该是Both(即两种都可用),你只要保证它不是Input Manager(Old)即可
(现在导入input system后会自动改为Input SystemPackage)
以前应该是自动创建的,现在需要点一下才能创建setting asset(我点过了,没这个图了……下图是另找的)(2021/1/23更新)
(2021/1/23更新)
Property | 介绍 |
---|---|
Default Deadzone Min | 盲区的最小值,输入值小于该值就会被认为为0(这是为了防止无意的输入) |
Default Deadzone Max | 盲区最大值,输入值大于该值则被认为是1(有些设备不会一直返回最大值,设置它可以帮助保持) |
Default Button Press Point | 针对有按钮的设备,这代表它们需要被按住多长时间,系统才能认为它们已被按下 |
Default Tap Time | 针对触摸屏,同样代表它们需要被按住多长时间,系统才能认为它们已被按下 |
Default Slow Tap Time | 默认的慢点击时间. |
Default Hold Time | 默认的持续按住的最短时间 |
Tap Radius | 在触摸屏上,两个手指点击之间的最大距离,系统认为这是同一触摸点击,而不是更多. |
Multi Tap Delay Time | 两次点击之间的最小时延(也是给触摸屏用的) |
下面就是在场景中创建一个物体(我选Capsule胶囊),然后给它命名为player,再给它添加Rigibody和player Input组件
(点Create Actions会创建一个unity已做好的Action模板,模板很全面,很有参考价值)
(2021/1/23更新)
在project窗口下右键create->InputActions,做个重命名(此处命名为InputControl)
双击打开->Add Control Scheme->重命名Scheme Name->点击加号寻找操作系统XboxController->save
好了,现在你可以开始进行按键设置了:
添加动作集和相应动作,以player map以及其movement移动为例:
先将movement的属性Action type 由默认的Button改为Pass through或Value;然后更改Control Type为Vector2(因为一般移动只有四个方向,二维的,Vector2正合适)
(2021/1/23更新)
Action Type | 解释 |
---|---|
Value | 当你绑定了多个输入设备。如果你在同一时间内,只希望有一个输入设备在使用,就选这个(如果选了这个,并且在同一时间使用了两个输入设备,unity就只认输入值大的那个) |
Pass through | 当你绑定了多个输入设备。如果你在同一时间内,还想处理多个输入设备的输入值,选这个 |
Button | 顾名思义,只要是按键就选这个(用键盘的话,基本上就是这个了) |
右键movement,Add 2D Vector Composite添加2D操作内容
(也可Add Binding,然后直接绑定遥感即可,自动就是二维的了)
将2D Vector 的Mode改为Analog,这样可以完美发挥摇杆输入是浮点数的优势(当然,这一步并不是必要的)
然后选中movement下的Binding,在右边path处:GamePad->Xbox Controller->Left Stick->Up(当然你想选右边的right Stick也可以,就是玩着可能有点别扭哈哈)
不过我个人更喜欢用listen功能,在已经连接手柄的情况下,点击后可以你只需要上推一下左边的摇杆,下面就直接显示出来了,省劲。
剩下的三个如法炮制……
好了,设置完毕,下面是最重要的事情:保存!Save!SaveAsset!(重要的事情说三遍)
如果你选中了Auto-Save,那当我没说哦。(不过你可能会跟我一样每次操作都会卡一下,不说卡到怀疑人生,但就是恶心哈哈,可能这就是低配电脑的命吧……)
将刚才设置好的InputControl加到胶囊胶囊体的Actions上,其他内容默认即可(2021/1/23更新)
下面就是代码了,将这个脚本也挂上去就可以咯
注意最上面要有:
using UnityEngine.InputSystem;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;public class Player : MonoBehaviour
{private bool grounded; //判断是否在地面上private Vector2 moveValue;public float moveSpeed =3f; //移动速度private void Update(){transform.Translate(new Vector3(moveValue.x,0,moveValue.y)*moveSpeed*Time.deltaTime);}void OnMovement(InputValue value) //用这个方法来响应你的输入{ //你是否也发现了它和InputControl中Actions里的名字很像呢?moveValue = value.Get<Vector2>();Debug.Log(value.Get<Vector2>()); //在console窗口显示你的输入值}void OnJump() //附赠的跳跃方法哈哈{if (grounded){GetComponent<Rigidbody>().velocity += new Vector3(0, 5, 0);grounded = false;Debug.Log("I am Pressing Jump");}}private void OnCollisionEnter(Collision collision){grounded = true;}
}
聪明如你是不是已经发现了方法名称和Actions有什么联系了呢?
你是不是还想知道跳跃是怎么设置的?如下添加Action和binding就行咯:
是不是比movement简单多了?
现在你可以按照自己的创意玩转新输入了!!!
unity 最新输入系统Input system简介,并用其设置Xbox(plus:unity package导入详解)相关推荐
- unity 如何切换输入系统(Input System)
问题描述: 在 Unity2019 版本中,加入了新的 Input System Package,当导入包的时候可能会将旧的输入系统禁用.这时如果再打开使用旧的输入系统的项目可能会出现异常. Inva ...
- Android 5.0(Lollipop)事件输入系统(Input System)
其实Android 5.0中事件输入子系统的框架和流程没有本质变化.Service端的实现在/frameworks/native/services/inputflinger/下(4.4中在/frame ...
- Windows系统下nodejs、npm、express的下载和安装教程详解
这篇文章主要介绍了Windows系统下nodejs.npm.express的下载和安装教程详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 1. node.js下载 首先进入http://nod ...
- 在linux系统上怎么架设服务器吗,Linux下各种服务器的架设详解
Linux下各种服务器的架设详解 本站整理 发布时间:2009-03-10 12:10:57 作者:jb51.net 我要评论 ########DNS########bind 篇##### ...
- win7系统自带的录像在哪里 Win7问题步骤记录器教程详解
v 在我们使用系统的时候是否遇到过有些疑难杂症想找人寻求帮助,但是苦于表述不清,解决起来十分困难的情况呢?当遇到了这样的问题怎么办?快用windows 7自带的问题步骤录制器记录下问题发生的每一个瞬间 ...
- 恢复W ndows10系统方法步骤,Windows 10系统恢复电脑(刷新电脑)的方法步骤图文教程详解...
有时候,遇到Win10系统出现了比较严重的问题,那么这时有比重装系统更好的办法就是"恢复电脑(刷新电脑)".因为重装系统就会丢失之前系统的个人文件和个性化设置,以及安装的所有应 ...
- ubuntu系统写路由指令_在Ubuntu中如何查看网络路由表详解,
在Ubuntu中如何查看网络路由表详解, 什么是Linux中的路由和路由表? 路由的过程意味着IP包在网络上从一点传输到另一点.当你向某人发送电子邮件时,你实际上是在将一系列IP数据包或数据报从你的系 ...
- 阴阳师最新的服务器,阴阳师跨区服务器大全 集结之境新增跨区服务器汇总详解...
阴阳师跨区服务器有哪些,阴阳师集结之境新增服务器哪些可以玩呢?下面是小编为大家带来的阴阳师跨区服务器大全,集结之境新增跨区服务器汇总详解,希望能帮助到大家! 亲爱的阴阳师大人: 为了让更多的大人们能够 ...
- [玩转UE4/UE5动画系统>应用篇>功能模块] 之 ALS V4 主状态机详解
本教程采用图文教程+视频教程的多元化形式,我会为不同的知识点选择适当的表达方式.教程内容将同步免费发布于 开发游戏的老王(知乎|CSDN)的专栏<玩转UE4/UE5动画系统>.教程中使用的 ...
最新文章
- mysql opti_MySQL基础操作
- 使用rman本机复制新数据库
- vim ctags java源码_如何使用vim的插件Ctags查看Linux源码
- 不太平凡的2020、平凡的我
- Redis从入门到精通:初级篇(转)
- 什么是JVM?JVM概述——初识JVM(类加载器,垃圾回收器,执行引擎)
- C语言十五位正整数相加,二个超长正整数的相加
- Identify ksusetxn DID:An Deadlock ID
- wdatepicker不显示秒_为什么别人电脑开机只要3秒,你有固态硬盘却要等上18秒?...
- 针式打印机打印发虚_针式打印机使用技巧
- hi35xx stmmac网卡驱动源码解读
- linux视频补帧,SVP(电脑视频补帧软件) V4.3.180 Linux版
- Git环境傻瓜式讲解
- EPLAN插入符号为空的解决方法
- iphone 越狱需要安装的包
- 【参赛作品68】PostgrSQL和OpenGauss/MogDB分区表对比(二)
- win10此计算机未连接到网络,win10提示无法连接到此网络怎么解决
- 用Python写三级菜单的三个版本
- 高清娱乐,高帧率投屏,来试试PeakDo毫米波无线投屏器
- pycharm2018安装教程 pycharm2018永久激活教程
热门文章
- 数据分享|1960-2020年中国1公里分辨率月降水栅格数据集
- python抓取斗鱼的主播及热度
- blender怎样给平面或曲面自动贴图
- 医院计算机机房必须过B级的文件,三级医院信息机房验收标准(44页)-原创力文档...
- ATRW A Benchmark for Amur Tiger Re-identification in the
- python开发app的软件_python编程入门APP
- 煤矿工人成为互联网工程师的故事
- 简述进程、线程、协程
- 请问炒股怎么样才能把10万本金翻到100万?
- 杭州1米93程序员征婚贴火了!首付能付260万,孩子以后都随妈姓