У меня есть 3D-объект, который я хочу повернуть с помощью прикосновения мыши / пальца, поэтому я сделал следующий скрипт.
Вращение объекта выглядит плавно в редакторе, но при игре в игру на реальном устройстве (android), вращение не следовало за движением пальца сразу, это занимает несколько миллисекунд, чтобы следовать за пальцем, оно не плавное и управление становится жестким и расстраивающим!
float sensitivity = 0.8f;
Vector2 firstPressPos;
Vector2 secondPressPos;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
//save began touch 2d point
firstPressPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y);
}
if (Input.GetMouseButton(0))
{
//save ended touch 2d point
secondPressPos = new Vector3(Input.mousePosition.x, Input.mousePosition.y);
if (firstPressPos != secondPressPos)
{
float RotX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;
float RotY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;
transform.RotateAround(Vector3.up, RotX);
transform.RotateAround(Vector3.right, -RotY);
}
}
}