Ошибка при нажатии?
Пробую новые для себя варианты управлять объектом с помощью мышки. !!! - Пометил место с ошибкой. Есть вот такой код
if (Input.touchCount > 0)
{
!!! Swipe();
}
}
private void Swipe()
{
!!! Vector2 delta = Input.GetTouch(0).deltaPosition;
if (Mathf.Abs(delta.x) > Mathf.Abs(delta.y))
{
Vector3 position = transform.position;
position.x += 1.5f * delta.x;
transform.position = position;
}
Сама ошибка: ArgumentException: Index out of bounds. UnityEngine.Input.GetTouch (System.Int32 index) (at <2db13ba0d52343228aa9892c408fb49a>:0) PlayerControl.Swipe () (at Assets/Scripts/PlayerControl.cs:60) PlayerControl.FixedUpdate () (at Assets/Scripts/PlayerControl.cs:52)
Ответы (1 шт):
Судя по ошибке, у вас оператор if и всё, что в нем находится в методе FixedUpdate(). Этот метод вызывается каждый кадр. А в функции Swipe() вы вот этой строкой:
Input.GetTouch(0) пытаетесь получить касание пользователя на экран. Но ведь пользователь не касается экрана каждый кадр. В итоге получается, что в определенный кадр нажатия на экран не было, а вы пытаетесь получить его (GetTouch).
Если что-то не так, то выложите, пожалуйста, если не весь код, то хотя бы функцию, в которой находится Input.GetTouch(0), но судя по тексту ошибки это находится в FixedUpdate()