Перемещение игрока по грид сетке
Добавлено: 29 окт 2019, 00:01
Здравствуйте. Пишу игру, где герой двигается по клеткам. Движение разрешено вверх, вниз, влево, вправо на одну клетку(но не по диагонали).Игрок кликает на клетку(грид сетка) -> отслеживается координата клетки -> если персонаж может перейти на клетку, то он переходит. Получаю координату клетки вот так:
Вопрос только в том, как отследить, что клетка подходит для хода и передвинуть персонажа туда(не телепортировать)? Отследить, что подходит я то могу, но песле первого передвижения координата персонажа становится не 5.5 а 5.500001 и проверка не работает. Двигаю с помощью Vector3.Lerp(). Заранее спасибо за помощь)
Синтаксис:
Используется csharp
public Grid grid;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); // координата клика
Vector3Int posInt = grid.LocalToCell(pos); // координата ячейки
Vector3 cell = posInt + new Vector3(0.5f, 0.5f, 0); // координата центра ячейки (сюда должен попасть игрок)
}
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); // координата клика
Vector3Int posInt = grid.LocalToCell(pos); // координата ячейки
Vector3 cell = posInt + new Vector3(0.5f, 0.5f, 0); // координата центра ячейки (сюда должен попасть игрок)
}
}
Вопрос только в том, как отследить, что клетка подходит для хода и передвинуть персонажа туда(не телепортировать)? Отследить, что подходит я то могу, но песле первого передвижения координата персонажа становится не 5.5 а 5.500001 и проверка не работает. Двигаю с помощью Vector3.Lerp(). Заранее спасибо за помощь)