Просто видосы, что можно сделать в 5 строчек кода с wGeometry + inputMovement.
Карта прилагается. + Добавил пример с мышью (Движение как в RPG).
Карта прилагается. + Добавил пример с мышью (Движение как в RPG).
Пример кода
function demo()
-- старая точка
local unitPoint = wGeometry.Vector3:copyFromUnit(udg_unit)
if(newUnitPoint == nil) then
newUnitPoint = unitPoint
end
-- фактическая точка где мы хотим чтоб он был
-- скейлом увеличил скорость от клавы
newUnitPoint = newUnitPoint + moveVector:scale(16)
-- линейная интерполяция - каждые 0.01 сек (см таймер) двигаем на 0.02 доли
local interpolated = unitPoint:lerp(newUnitPoint, 0.02)
-- применяю к юниту
interpolated:applyToUnit(udg_unit)
-- поворот для красоты
moveVector:applyToUnitFacingAnimated(udg_unit)
end
Пример с W,A,S,D,Ctrl,Space
Пример с мышью