Unity. Поворот объекта по направлению курсора мышки только вверх/вниз

У меня есть танк, у которого есть - башня и сама пушка на башне (как дочерний объект). При наведении курсора мыши в некоторую область на сцене -> башня поворачивает в сторону курсора мышки и пушка тоже соответственно следует за ней, так как дочерний объект.

В общем надо сделать при наведении мыши на точку в сцене:

  1. чтобы башня крутилась вокруг оси (Y) по направлению указателя мышки. (эту функцую реализовал в скрипте ниже)
  2. а сама пушка только вверх/вниз в зависимости на какую точку на объекте на сцене ты указал мышкой.

    Либо 2-й вариант мне сейчас пришел в голову -> пушка поворачивает по всем плоскостям следуя за указателем мыши (c определенной скоростью _towerSpeed), а башня в зависимости от пушки -> только крутится по оси Y. Но стоит помнить, что пушка - дочерний объект башни.

public float _towerSpeed
public Transform _tower // башня
public Transform _shootPoint // пушка (дочерний объект башни)

private void TowerRotation() // сдeлать так, чтоб башня крутилась вокруг оси, а пушка вверх-вниз
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        RaycastHit hitInfo;
        if (Physics.Raycast(ray, out hitInfo))
        {
            Vector3 ShootPointLookDir = hitInfo.point - _shootPoint.position;

            var rotation = Quaternion.LookRotation(hitInfo.point - _tower.position);
            var targetRotation = Quaternion.RotateTowards(_tower.transform.rotation, rotation, _towerSpeed);

            _tower.rotation = new Quaternion(0, targetRotation.y, 0, targetRotation.w); // движение башни вокруг Y

            // необходимо движение пушки вверх/вниз по указателю мышки


        }
    }

Ответы (0 шт):