找回密码
 立即注册
查看: 291|回复: 0

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

[复制链接]
发表于 2022-7-26 17:44 | 显示全部楼层 |阅读模式
输入拦截与对象控制


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



1. 输入拦截
  1. 来自键盘的信号会被计算机程序拦截。UE的底层逻辑自动完成了这一操作,我们可以直接
  2. 获取到拦截的键盘输入。
复制代码
1.1 拦截配置
  1. Unreal的有些地方是挺扯淡的,它是配置文件+代码,也就是说有的东西你需要手动的
  2. 添加,这点用起来比起Unity还是差异略大
复制代码


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

默认当前输入为0,当我们按下w时,该轴值会逐渐累加至1,按下s时会逐渐下降到-1.
1.2 指定对象拦截输入
  1. 在游戏中的所有GameObject并不都可以拦截输入,我们需要指定该GameObject支持
  2. 输入拦截:
复制代码


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

此时的轴值:



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



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

2.1 两个蓝图分别调用InputAxis MoveForward,只有一个有效
  1. 在该版本中,我们存在一个ThirdPersonCharacter(tpc)的蓝图和Move对象的蓝图
复制代码

在tpc中,接收来来自MoveForward的信号,同样在move对象中,我们也久守了MoveForward的信号


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



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

结果如下


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



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

在这里插入图片描述

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-25 13:28 , Processed in 0.099573 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表