Touch position return wrong data on Pixel 6 and Android 12. it does not occur unless the device is rotated from the initial state.

As far as I investigate, the touch position only return data from NDK

float x = FMath::Min<float>(AMotionEvent_getX(event, actionPointer) / Width, 1.f);
x *= (ScreenRect.Right - 1);
float y = FMath::Min<float>(AMotionEvent_getY(event, actionPointer) / Height, 1.f);
y *= (ScreenRect.Bottom - 1);
Steps to Reproduce
  1. Open repro project
  2. Create android package and run on the device, or launch
  3. rotate device from vertical( horizontal ) to horizontal (vertical)
  4. touch the right edge of the screen

expect : white square display on the touch position
result : display in the shifted place

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-140221 in the post.

Login to Vote

ComponentUE - Platform - Mobile
Affects Versions4.27
CreatedJan 26, 2022
UpdatedFeb 1, 2022