Unity: Как вращать камеру от первого лица, перетаскивая сенсорный экран? - PullRequest
0 голосов
/ 17 мая 2019

Возможно, стоит отметить, что я использую актив Fingers для касания / мыши.

Хорошо, у меня есть турель с камерой от первого лица, на ПК она использует ось Mouse X / Y, так как я перемещаю мышь вокруг камеры следующим образом. Но мне нужно, чтобы Mobile работал с осью Mouse X / Y, чтобы перетаскивать камеру с помощью касания.

Мне нужна помощь: Как мои пальцы тянут по экрану, чтобы переместить вращение камеры не положение. Позиция изменена транспортным средством.

Это код, который я использую для ПК от первого лица, перемещая мышь:

 x += Input.GetAxis("Mouse X") * xSpeed * 0.02f;
 y -= Input.GetAxis("Mouse Y") * ySpeed * 0.02f;

 Quaternion rotation = Quaternion.Euler(y, x, 0f);

 turretHeadToMove.rotation = rotation;

Как бы я использовал сенсорное перетаскивание, чтобы переместить вращение? вместо мышки?

Помогите ли вы с этим? Спасибо


Вот текущий код для прикосновения

if (Input.touchCount > 0)
{
    if (Input.GetTouch(0).phase == TouchPhase.Moved)
    {
        Touch touch = Input.GetTouch(0);
        x += touch.deltaPosition.x * xSpeed * 0.02f;
        y -= touch.deltaPosition.y * ySpeed * 0.02f;

        Quaternion rotation = Quaternion.Euler(y, x, 0f);

        turretHeadToMove.rotation = rotation;
    }
}

1 Ответ

1 голос
/ 17 мая 2019

Для касания вы можете использовать

Input.GetTouch (0) .deltaPosition

Попробуйте поиграть с чем-нибудь, используя это:

float strength = 2;

if (Input.touchCount == 1) { 
  if (Input.GetTouch(0).phase == TouchPhase.Moved)
  {
    Vector2 touchDirection = Input.GetTouch(0).deltaPosition;
    // Update ur transform.Rotate the way u desire
    // Different depending on using 1st person, 3rd person etc.
  }
}
...