Страница 1 из 1

Поворот пушки через плечо к цели.

СообщениеДобавлено: 25 мар 2018, 21:11
Jagiello
Не могу сообразить как повернуть ось(плечо), чтобы дуло оружия было наведено на цель.
Скриншот: https://yadi.sk/d/cwxEz0EK3Tjs3X

Методом тыка получилось только поворот плеча к цели без учета дула.
Синтаксис:
Используется csharp
public void LookTo(Vector2 aim) //todo: INCORRECT METHOD!
        {
            //aim - куда навели мышкой
            //axis - плечо, которым управляем
            //gunpoint - дуло пистолета

            var target = gunpoint.position - (Vector3)aim;
            var rotation = Quaternion.LookRotation(target);
            axis.rotation = rotation;
            var localEuler = axis.localRotation.eulerAngles;
            var newLocalEuler = new Vector3(0, 0, localEuler.x);
            axis.localRotation = Quaternion.Euler(newLocalEuler);
        }
 

Re: Поворот пушки через плечо к цели.

СообщениеДобавлено: 25 мар 2018, 21:51
1max1

Re: Поворот пушки через плечо к цели.

СообщениеДобавлено: 25 мар 2018, 23:45
Jagiello
1max1 писал(а):http://www.unity3d.ru/distribution/viewtopic.php?f=5&t=45186

Это решило баг "кругового вращения" при близкой цели... Однако вопрос был в том, как поворачивать плечо, чтобы дочерний объект-дуло смотрело на цель. Если очевидное решение я пропустил, прошу Вас указать на него.

Re: Поворот пушки через плечо к цели.

СообщениеДобавлено: 26 мар 2018, 04:18
1max1
Повесь на пистолет скрипт с Look2D чтобы всегда смотрел на цель, на плечо другой скрипт с поворотом

Re: Поворот пушки через плечо к цели.

СообщениеДобавлено: 27 мар 2018, 00:17
Jagiello
1max1 писал(а):Повесь на пистолет скрипт с Look2D чтобы всегда смотрел на цель, на плечо другой скрипт с поворотом

Рука(или непосредственно пистолет) не может вращаться, можно только плечом наводится.
Нутром чувствую, что это решается в пару строчек. Такое реализовано почти во всех FPS-играх без автонаводки, где наводишься не кистью, а плечом. Но гугл меня не понимает...