[Unity插件]InputSystem

声明:此篇文章是个人学习心得,并非教程。不保证百分百正确,仅供参考。如有错误,欢迎指出。谢谢!


目录

一.InputSystem的安装

二.InputActions创建和设置

三.InputActions的参数

1.Scheme

2.ActionType

四.Inputsystem的交互实现

1.PlayerInput组件实现交互

Invoke Unity Events实现

Invoke C Sharp Events实现

2.C#脚本实现交互

CallbackContext

3.切换ActionMap

4.触摸屏交互


        新的inputsystem较于老的inputsystem兼容性更强,也让我们不用再去关注输入的条件判断。所以还是值得学习一下。

一.InputSystem的安装

点击Window-PackageManager 里搜InputSystem进行安装

安装完后会弹出个提示,意思就是用开启新的输入系统,禁用旧的输入系统。我们可以点击确定,等他重新开启。也可以直接在Editor-ProjectSetting-Player-OtherSetting中中找到Active Input Handing设置(如果上面提示框确定了这边会自动设置为新的输入系统。我们也可以手动设置成Both)。


二.InputActions创建和设置

安装完后我们就可以再Assets里面去创建InputActions,具体位置如下

双击创建的文件,就可以打开输入设置面板,我们在上面进行设置后,要点保存Assets


三.InputActions的参数

1.Scheme

scheme主要用来分类控制器的

我们上面一套设置后,可以算键盘的输入。如果我们需要别的输入系统,如手柄的输入。我们则须先把原先设置好的添加为Keyboard Scheme。如下图所示

需要注意的是 我们添加完后 需要运用到该scheme的按键都要勾选use in control scheme。我们的键盘配置就好了。

这时候再点击scheme的添加,就可以添加其他输入系统的scheme了,我们会发现动作都在,只是绑定的键位都不见了。我们只需要重新绑定键位即可。

绑定完后,我们发现总scheme的Jump交互方式就多了一个(没有设备,只能用鼠标测试)

2.ActionType

Value:输出一个数值,数值改变调用输入事件

Button:Start,Perform,Cancel三个的时机都会调用输入事件。

Pass Through:按下,弹起各执行一次输入事件(都算在perform阶段)。


四.Inputsystem的交互实现

1.PlayerInput组件实现交互

InputActions都准备好后,我们就可以设置输入后的逻辑实现。我们可以用PlayerInput组件进行事件绑定。面板上添加回调函数(Behavior选择Invoke Unity Events)或者在c#脚本里面实现绑定函数(Behavior选择Invoke C Sharp Events)就可以实现输入后的逻辑了。

Invoke Unity Events实现

1.Behavior设置

2.找到对应按钮进行添加回调函数即可。

Invoke C Sharp Events实现

1.Behavior设置为Invoke C Sharp Events

2.在脚本中获取PlayerInput组件,并进行事件绑定

2.C#脚本实现交互

如果我们不希望组件来实现交互,我们也可以选择完全用脚本来进行交互。

1.找到前面设置好的InputActions,我们可以在Inspector面板中导出脚本(点击Apply)。

2.脚本实现绑定

CallbackContext

我们可以通过脚本传递的CallbackContext信息来进行对应的操作

CallbackContext有三个阶段(Phase),Started(执行),Performed()和Canceled(取消),如果不进行阶段判断。则函数会一次性执行三次。

3.切换ActionMap

SwitchCurrentActionMap的API

4.触摸屏交互

给交互物体挂上On-Screen Button脚本和On-Screen Stick脚本

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值