Oscillator.cs 683 B

1234567891011121314151617181920212223242526
  1. using UnityEngine;
  2. namespace Unity.AI.Navigation.Samples
  3. {
  4. /// <summary>
  5. /// Makes a transform oscillate relative to its start position
  6. /// </summary>
  7. public class Oscillator : MonoBehaviour
  8. {
  9. public float m_Amplitude = 1.0f;
  10. public float m_Period = 1.0f;
  11. public Vector3 m_Direction = Vector3.up;
  12. Vector3 m_StartPosition;
  13. void Start()
  14. {
  15. m_StartPosition = transform.position;
  16. }
  17. void Update()
  18. {
  19. var pos = m_StartPosition + m_Direction * m_Amplitude * Mathf.Sin(2.0f * Mathf.PI * Time.time / m_Period);
  20. transform.position = pos;
  21. }
  22. }
  23. }