maltadirk 发表于 2022-7-26 17:44

unreal-教程-第四章:输入拦截与对象控制

输入拦截与对象控制


1. 输入拦截
1.1 拦截配置1.2 指定对象拦截输入1.3 实现W,S键控制Cube沿Y轴的运动
2. 问题与分析
2.1 两个蓝图分别调用InputAxis MoveForward,只有一个有效2.2 如何动态的(在蓝图)允许对象接受输入2.3 怎么将Vector转化成三个float数据



1. 输入拦截

来自键盘的信号会被计算机程序拦截。UE的底层逻辑自动完成了这一操作,我们可以直接
获取到拦截的键盘输入。1.1 拦截配置

Unreal的有些地方是挺扯淡的,它是配置文件+代码,也就是说有的东西你需要手动的
添加,这点用起来比起Unity还是差异略大

这里默认提供了几种Axis的映射,包括MoveForward和MoveRight,我们展开来可以看见:

默认当前输入为0,当我们按下w时,该轴值会逐渐累加至1,按下s时会逐渐下降到-1.
1.2 指定对象拦截输入

在游戏中的所有GameObject并不都可以拦截输入,我们需要指定该GameObject支持
输入拦截:

此时我们的Move对象可以拦截到输入信号

此时的轴值:



1.3 实现W,S键控制Cube沿Y轴的运动



可以自行调试,我是成功了的,加油!
2. 问题与分析

2.1 两个蓝图分别调用InputAxis MoveForward,只有一个有效

在该版本中,我们存在一个ThirdPersonCharacter(tpc)的蓝图和Move对象的蓝图
在tpc中,接收来来自MoveForward的信号,同样在move对象中,我们也久守了MoveForward的信号


但是在场景运行中我们发现:



这是什么原因呢?
我们在TPC中打印来自MoveForawrd的信息

结果如下


至于为什么,这个我也不知道,有知道的同学可以在评论区解释下奥
2.2 如何动态的(在蓝图)允许对象接受输入



2.3 怎么将Vector转化成三个float数据

在这里插入图片描述

页: [1]
查看完整版本: unreal-教程-第四章:输入拦截与对象控制