Возможно ли сделать резкий поворот юнита в указанную точку и как его сделать, а то обычный вариант не очень хорошо работает герой поворачивается как-то не особо быстро.

Принятый ответ

jasonrus96, ну прочекай все функции поворота angle facing. Есть еще функции с скоростью поворота SetUnitTurnSpeed
Но посмотрел, и везде пишут, что нельзя. Мб и есть решения
Если это dummy-снаряд, то попробуй на спецэффект заменить. У спецэффекта есть функции вращения модели, мб что там

Находил вариант где поворачивают (лицо) рутовую кость, пишут, что надо саму модель редачить и спец функции поворачивать
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
27
10 месяцев назад
0
function BlzSetUnitFacingEx(whichUnit, facingAngle) end
Мгновенный повоюорот
0
8
10 месяцев назад
0
МрачныйВорон, facingAngle - тут нужно указать в какую точку?
0
27
10 месяцев назад
Отредактирован MpW
0
jasonrus96,
facingAngle - угол поворота, т.е. куда смотришь лицом. Заставить мгновенно я понял, что нельзя. Он делает с задержками. Но если честно, я не особо парился над этим.
А перемещение SetUnitX, SetUnitY происходит мгновенно. Тут только твймером, вроде вам нужно плавно перемещать? А перемещает рывками. Снизи скорость, но увеличь частоту таймера. У меня где то была наработка со вращением
0
8
10 месяцев назад
0
МрачныйВорон, с перемещением все ясно мне нужно что-то с поворотом сделать убрать плавность чтобы юнит резко поворачивался к цели например на клик мышки поворачивается резко на курсор.
0
27
10 месяцев назад
Отредактирован MpW
0
jasonrus96, ну прочекай все функции поворота angle facing. Есть еще функции с скоростью поворота SetUnitTurnSpeed
Но посмотрел, и везде пишут, что нельзя. Мб и есть решения
Если это dummy-снаряд, то попробуй на спецэффект заменить. У спецэффекта есть функции вращения модели, мб что там

Находил вариант где поворачивают (лицо) рутовую кость, пишут, что надо саму модель редачить и спец функции поворачивать
Принятый ответ
0
8
10 месяцев назад
0
0
27
10 месяцев назад
0
jasonrus96, если ты нашел решение, то дай ответ
0
23
10 месяцев назад
0
Заставить мгновенно я понял, что нельзя. Он делает с задержками.
Так именно рефовский BlzSetUnitFacingEx мгновенно и поворачивает
0
8
10 месяцев назад
0
poisoNDealer, до меня не доходит как настроить это Call BlzSetUnitFacingEx() - вот так выдает
0
27
10 месяцев назад
Отредактирован MpW
0
jasonrus96, так тебе надо угол вектора взять.
Atan2(y2-y1,x2-x1)  - угол вектора
Где x1,y1 - корды юнита, которого двигаешь; или координаты тек положения
x2,y2 - корды мыши или таргет-цели
Надо будет из радианов в градусы перевести. Тк в этой нативке facingAngle выражен в градусах 0-360
Если на событие мыши, то мб с задержками немного обновлять координаьы мыши 0.003 мек, незначительно. События мыши синхронизируются, или что то там делают.. я не знаю. Я короче не отвечаю за эти слова. Но это незначительно, я не делал рогалики или движение снарядов за мышкой, пожтому не сильно то мне это надо было

Atan2(y2-y1,x2-x1)*bj_RADTODEG - не забудь из радианов в градусы перевести так
0
8
10 месяцев назад
0
poisoNDealer, все разобрался

Работает мгновенно нажатие поворот и без задержек
Загруженные файлы
0
27
10 месяцев назад
Отредактирован MpW
0
jasonrus96, работает норм? ты всем снарядам задаешь общий вектор?
Просто вектор строится от TempLoc[1] (тек позиции героя), а нет от GetUnirPosition(GetEnumUnit()) (тек положения снаряда). Снаряды должны двигаться к камере, а не копировать угол вектора

Atan2(y2-y1,x2-x1)*bj_RADTODEG - не забудь из радианов в градусы перевести так
0
8
10 месяцев назад
0
Огромне спасибо, насчет снарядов я не особо юзаю координаты я просто две точки делаю(юнит и пустышка которую цепляю к курсору) прогоняю через масив это все и в итоге снаряды летят как нужно а резкий поворот мне нужен был для боевой системы как в диабло а то герой поворачивается как корова.

SetUnitFacing()
BlzSetUnitFacingEx()
Вот эти две шутки помогли.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.