У меня есть скрипт который отвечает за передвижение камеры .
Скрипт рассчитывается применяться на мобильной платформе. Все работает плавно и хорошо. Но когда ставишь два пальца на экран. Камера сразу же прыгает ко второму пальцу. Как присваивать координаты только первому пальцу? Пробовал ограничивать касания пальцев через Input.touchCount но проблема возвращалась когда я отпускал первый палец. Камера сразу же переключалась на координаты второго пальца.
Синтаксис:
Используется csharp
private Vector3 touchPoint;
private Vector3 direction;
[SerializeField] private float speed;
[SerializeField] private Rigidbody rigidbody;
void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.touches[0];
switch (touch.phase)
{
case TouchPhase.Began:
touchPoint = Camera.main.ScreenToWorldPoint(Input.touches[0].position);
break;
case TouchPhase.Moved:
direction = touchPoint - Camera.main.ScreenToWorldPoint(Input.touches[0].position);
Camera.main.transform.position += direction;
rigidbody.AddForce(direction * speed, ForceMode.Impulse);
break;
case TouchPhase.Ended:
rigidbody.AddForce(direction * speed, ForceMode.Impulse);
break;
}
}
}
private Vector3 direction;
[SerializeField] private float speed;
[SerializeField] private Rigidbody rigidbody;
void Update()
{
if (Input.touchCount > 0)
{
Touch touch = Input.touches[0];
switch (touch.phase)
{
case TouchPhase.Began:
touchPoint = Camera.main.ScreenToWorldPoint(Input.touches[0].position);
break;
case TouchPhase.Moved:
direction = touchPoint - Camera.main.ScreenToWorldPoint(Input.touches[0].position);
Camera.main.transform.position += direction;
rigidbody.AddForce(direction * speed, ForceMode.Impulse);
break;
case TouchPhase.Ended:
rigidbody.AddForce(direction * speed, ForceMode.Impulse);
break;
}
}
}