BABYLON.UniversalCamera doesn't rotate linearly when touching on smart devices

Hi there,

My project works well when it is on PC using BABYLON.UniversalCamera to control the movement and rotation. But going to smart device( touch screen), camera’s roration changes rapidly when my finger moves to the eage of screen.

I try the sensibility parameter: BABYLON.UniversalCamera.touchAngularSensibility, using different values to test. That camera works well in the middle part of screen ,but there is still a sudden change of the rotation speed when moving to the edge of screen.

Do I need to customize UniversalCamera input or is there a simple way to adjust the Mapping relations between touch distance and camera rotation?

Pinging @PolygonalSun

Hey @sevenPlus,

Lemme take a look and see what’s going on.

@sevenPlus, would you be able to create a playground that recreates exactly what you were seeing?

Hi @PolygonalSun ,

The following codes are witten in my project:

var camera = new BABYLON.UniversalCamera(“UniversalCamera”, new BABYLON.Vector3(10, 2, 10), scene);
camera.rotation = new BABYLON.Vector3(0, 0, 0);
camera.applyGravity = true;
camera.checkCollisions = true;
camera.ellipsoid = new BABYLON.Vector3(0.5, 1, 0.5);
camera.keysUp.push(87);
camera.keysDown.push(83);
camera.keysLeft.push(65);
camera.keysRight.push(68);
camera.speed = 0.1;
camera.touchAngularSensibility = 70000;

But switching to my test playground, I can not even change the rotation of camera under Device Mode on Chrome.

This is my project link, you can tyr to rotate through Devide Mode on Chrome to simulate the event on smartDevice. Something like this

Thank you so much.

2 Likes