AutoMove.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Magica Cloth.
  2. // Copyright (c) MagicaSoft, 2020-2022.
  3. // https://magicasoft.jp
  4. using UnityEngine;
  5. namespace MagicaCloth
  6. {
  7. public class AutoMove : MonoBehaviour
  8. {
  9. [SerializeField]
  10. private Vector3 direction = Vector3.up;
  11. [SerializeField]
  12. private float length = 0.5f;
  13. [SerializeField]
  14. [Range(0.1f, 10.0f)]
  15. private float interval = 2.0f;
  16. private Vector3 startPosition;
  17. private float time = 0;
  18. void Start()
  19. {
  20. startPosition = transform.localPosition;
  21. }
  22. void Update()
  23. {
  24. time += Time.deltaTime;
  25. float ang = (time % interval) / interval * Mathf.PI * 2.0f;
  26. //Vector3 offset = direction * Mathf.Sin(ang) * length;
  27. Vector3 offset = Vector3.Scale(direction, new Vector3(Mathf.Sin(ang), Mathf.Sin(ang), Mathf.Cos(ang))) * length;
  28. transform.localPosition = startPosition + offset;
  29. }
  30. public void OnMoveButton()
  31. {
  32. enabled = !enabled;
  33. }
  34. }
  35. }