Привет, выглядывает!
Я делаю мобильную видеоигру, и у меня проблемы с моей системой сенсорных движений. Вот как я хочу, чтобы это работало:
https://www.youtube.com/watch?v=X5tC7y1_ARA
1) Двигаться только по осям X (здесь не проблема)
2) Когда я нажимаю на экран, объект не должен телепортироваться в положение пальца.
3) Объект должен перемещаться из начальной позиции объекта в текущую позицию объекта в реальном времени, без телепортации.
Я рассчитываю текущую позицию объекта следующим образом:
текущая позиция объекта = текущая позиция объекта + текущая позиция пальца - начальная позиция пальца
Вот что я получил до сих пор
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began)
{
Vector3 startPos = touch.position; //Initial Position
}
if (touch.phase == TouchPhase.Moved)
{
Vector3 movementDistance = new Vector3(touch.position.x - startPos.x, 0, 0);
Vector3 direction = Camera.main.ScreenToWorldPoint(movementDistance);
Vector3 currentPos = Camera.main.ScreenToWorldPoint(transform.position);
transform.position = new Vector3(Mathf.Clamp(currentPos.x + direction.x, -121, 121), transform.position.y, transform.position.z);
}
}
По какой-то причине это не работает должным образом. Объект телепортируется в случайные позиции, и он не перемещает объект, как я надеялся.
Можете ли вы помочь мне обнаружить мою проблему? Если нет, знаете ли вы какие-либо другие методы?