UE4 安卓触摸事件相关问题
UE4在安卓端获取输入信息时候,似乎会把触摸事件和PC端的鼠标事件弄混在一起,导致出现一些奇怪的问题。
1. /* 安卓端会把触摸事件读取成PC端的鼠标事件,因为Turn和LookUp在PC端开发时候一般都绑定在鼠标X轴,Y轴上,
* 所以这里要对安卓端做一些特殊处理。
*/
#if !PLATFORM_ANDROIDPlayerInputComponent->BindAxis("Turn", this, &APawn::AddControllerYawInput);PlayerInputComponent->BindAxis("LookUp", this, &APawn::AddControllerPitchInput);#endif
2. 在列表中放置按钮时候因为需要把按钮的 ClickMethod设置为 PreciseClick,这样才能在左键拖动鼠标时候滑动列表。对应的在移动端设备中则应该修改TouchMethod为 PreciseTap,这样才能滑动列表,但是同理因为安卓端的问题,该处地方 ClickMethod 不能为PreciseClick,改为 DownAndUp就好。
如若不然,可能会导致个别奇怪问题,比如某个地方的按钮不能接收到ClickEvent。
3.在PlayerController的InputTouch函数中获取到的TouchLocation时,TouchBegin和TouchMove消息获取的位置比TouchEnd的位置大1.5倍。而且通过PlayerInputComponent绑定的TouchEnd消息不能触发。
bool AMyPlayerController::InputTouch(uint32 Handle, ETouchType::Type Type, const FVector2D& TouchLocation, float Force, FDateTime DeviceTimestamp, uint32 TouchpadIndex)
{
#if PLATFORM_ANDROIDFVector2D EndTouchLocation = TouchLocation;//end消息在android下存在问题,需要乘以1.5倍if (Type == ETouchType::Ended){EndTouchLocation *= 1.5f;}
#endif...
}//本文为CSDN博主执手画眉弯原创,未经允许不得转载!
bool AMyCharacter::EnableTouchscreenMovement(class UInputComponent* PlayerInputComponent)
{if (FPlatformMisc::SupportsTouchInput() || GetDefault<UInputSettings>()->bUseMouseForTouch){PlayerInputComponent->BindTouch(EInputEvent::IE_Pressed, this, &AMyCharacter::BeginTouch);#if !PLATFORM_ANDROID//安卓设备接收不到结束点击事件PlayerInputComponent->BindTouch(EInputEvent::IE_Released, this, &AMyCharacter::EndTouch);
#endif//Commenting this out to be more consistent with FPS BP template.PlayerInputComponent->BindTouch(EInputEvent::IE_Repeat, this, &AMyCharacter::TouchUpdate);return true;}return false;
}//本文为CSDN博主执手画眉弯原创,未经允许不得转载!
注:EnableTouchscreenMovement函数在重载的SetupPlayerInputComponent函数中调用。
UE4 安卓触摸事件相关问题相关推荐
- 安卓学习笔记13:安卓触摸事件
文章目录 零.学习目标 一.安卓触摸事件概述 1.触摸分类 2.触摸动作 3.触摸监听器 4.触摸方法 5.触点个数与坐标 二.安卓单点触摸 三.教学案例--通过单点触摸移动米老鼠 (一)运行效果 ( ...
- Android Studio笔记4.2 安卓触摸事件
文章目录 一.前言 二.笔记4.2 安卓触摸事件 (一)安卓触摸事件概述 1.触摸分类 (1).单点触摸 (2).多点触摸 2.触摸动作 3.触摸监听器 4.触摸方法 5.触点个数与坐标 6.安卓触摸 ...
- 3.2 安卓触摸事件
文章目录 一.安卓触摸事件概述 1.触摸分类 (1)单点触摸 (2)多点触摸 2.触摸动作 3.触摸监听器 4.触摸方法 5.触点个数与坐标 6.安卓触摸事件处理机制 二.案例演示:通过单点触摸移动米 ...
- 安卓讲课笔记4.2 安卓触摸事件
文章目录 零.学习目标 一.导入新课 二.新课讲解 (一)安卓触摸事件概述 1.触摸分类 (1)单点触摸 (2)多点触摸 2.触摸动作 3.触摸监听器 4.触摸方法 5.触点个数与坐标 6.安卓触摸事 ...
- Android基础学习笔记13:安卓触摸事件触摸按键
学习目标 了解安卓触摸动作 熟悉触摸监听器与方法 掌握单点触摸与多点触摸 在Android系统中,触摸是用户最常用,最基础的交互方式,只有弄通触摸事件在系统中的传递处理机制才能更好地增强用户的交互体验 ...
- Android Studio 笔记4.2 安卓触摸事件
文章目录 一.前言 二.笔记4.2 安卓触摸事件 (一)安卓触摸事件概述 1.触摸分类 (1).单点触摸 (2).多点触摸 2.触摸动作 3.触摸监听器 4.触摸方法 5.触点个数与坐标 6.安卓触摸 ...
- Android Studio学习:安卓触摸事件
(一)安卓触摸事件概述 1.触摸分类 (1)单点触摸 单点触控,只能识别和支持每次一个手指的触控.点击,若同时有两个以上的点被触碰,就不能做出正确反应.很多医院.图书馆等的大厅都有这种触控技术的电脑, ...
- 4.2 安卓触摸事件
文章目录 一.简介 二.概述 (一)安卓触摸事件概述 1.触摸分类 (1)单点触摸 (2)多点触摸 2.触摸动作 3.触摸监听器 4.触摸方法 5.触点个数与坐标 6.安卓触摸事件处理机制 (二)案例 ...
- 4.3 安卓触摸事件
文章目录 一.安卓触摸事件概述 1.触摸分类 (1)单点触摸 (2)多点触摸 2.触摸动作 3.触摸监听器 4.触摸方法 5.触点个数与坐标 6.安卓触摸事件处理机制 二.案例演示:通过单点触摸移动米 ...
最新文章
- 9款超赞的AI开源项目!| 本周Github精选
- 作为一枚第二天上班的小小.net程序员(技术宅的那种)很迷茫哦,第一个随笔
- 电子商务中遇到组合搜索的问题
- Chrome百度不显示中文字体
- 软件工程与项目管理的关系_软件工程:软件工程概述13个问题解答?
- LeetCode 743. 网络延迟时间(最短路径)
- IIS PHP MYSQL出现问题,IIS 运行PHP 正常使用MYSQL 解决报错0x000000ff
- STM32编码器的学习笔记
- 智能运维(AIOps)时代开启,一文帮你快速了解其定义与发展现状
- Python的JAVA胶水——jpype
- HihoCoder - Floyd算法
- 中文版Excel 2007公式与函数应用宝典
- 【ADRC】自抗扰控制
- 对称正定矩阵的Cholesky分解
- word页眉设置:显示章节标题、奇偶页不同
- oracle异构mysql_Oracle GoldenGate学习之--异构平台同步(Mysql到Oracle)
- flask内容学习第三天(flak中的csrf跨站请求)
- 11.7亿、苹果仅20%、1/4的时间看短视频...关于互联网,你必须知道的几个数字......
- Google+ 登录
- java投票排名怎么弄_微信投票中,怎样快速投票把排名提上去呢?