SinusMove.cs 756 B

1234567891011121314151617181920212223242526272829303132
  1. using UnityEngine;
  2. namespace Kamgam.SkyClouds
  3. {
  4. public class SinusMove : MonoBehaviour
  5. {
  6. public float Speed = 1f;
  7. public float SinDelta = 1f;
  8. public Vector3 Axis = new Vector3(0f, 1f, 0f);
  9. [System.NonSerialized]
  10. Vector3 _initialPosition;
  11. [System.NonSerialized]
  12. float _angle = 0f;
  13. void Start()
  14. {
  15. _angle = 0f;
  16. _initialPosition = transform.localPosition;
  17. }
  18. void Update()
  19. {
  20. _angle += Speed * Time.deltaTime;
  21. _angle %= 360f;
  22. var multiplier = (Mathf.Sin(_angle * Mathf.Deg2Rad) + SinDelta) * 0.5f;
  23. transform.localPosition = _initialPosition + Axis * multiplier;
  24. }
  25. }
  26. }