using UnityEngine;

namespace Shooter
{
    /// <summary>
    /// Покачивает объект вдоль оси по синусоиде вокруг стартовой позиции
    /// (плавающие платформы, декор).
    /// </summary>
    public class SwingLinear : MonoBehaviour
    {
        [Tooltip("Скорость колебания")]
        public float m_Speed = 1;
        [Tooltip("Амплитуда (радиус) колебания")]
        public float m_Radius = 1;
        [Tooltip("Ось, вдоль которой качается объект")]
        public Vector3 m_Axis = Vector3.up;

        [HideInInspector] public Vector3 m_InitPosition;

        void Start()
        {
            m_InitPosition = transform.localPosition;
        }

        void Update()
        {
            transform.localPosition = m_InitPosition + m_Radius * Mathf.Sin(m_Speed * Time.time) * m_Axis;
        }
    }
}
