﻿using UnityEngine;

public class TowerMover : MonoBehaviour
{
    [SerializeField]
    private Transform _towerTrans;
    [SerializeField]
    private float _rotationSpeed = 10f;

    private Vector3 _targetPos;

    public void SetInput(Vector3 targetPos)
    {
        _targetPos = targetPos;
    }

    private void Update()
    {
        var oldRot = _towerTrans.eulerAngles;
        _towerTrans.LookAt(_targetPos);

        oldRot.y = Mathf.LerpAngle(oldRot.y, _towerTrans.eulerAngles.y, Time.deltaTime * _rotationSpeed);
        _towerTrans.eulerAngles = oldRot;

        //это галимая коррекция поворота из-за не совсем корректных осей
        var oldLocalRot = _towerTrans.localEulerAngles;
        oldLocalRot.x = 0;
        oldLocalRot.z = 0;
        _towerTrans.localEulerAngles = oldLocalRot;
    }
}
