getAlex 23 июл 2018, 22:37
Сохраняешь текущую позицию. Проверяешь изменилась ли она. Если изменилась - меряешь дистанцию ( Vector3.Distance() ) и плюсуешь к шагометру.
Либо, если есть ригидбоди -смотришь если велосити(скорость) больше нуля.
А ещё в ригидбоди есть пройденный путь за прошлый такт физики и оценочный путь для следующего шага, но он приблизительный и с ним не очень удобно работать.
Чтоб сразу оптимизировать и не чекать это всё в апдейте - стартуешь чек в том месте, где ты двигаешь персонажа. А если какое-то время нет движения - перестаёшь чекать (вводишь в сон). Ещё можно сделать "шаг", ниже которого перемещение не будет засчитываться как движение чтоб компенсировать флуктуации флоата.