ObjectFloating.cs 846 B

123456789101112131415161718192021222324252627282930
  1. using UnityEngine;
  2. namespace ToneTuneToolkit.Object
  3. {
  4. /// <summary>
  5. /// OK
  6. /// 物体上下漂浮功能
  7. /// 挂在对象上
  8. /// </summary>
  9. public class ObjectFloating : MonoBehaviour
  10. {
  11. public float PerRadian = 2f; // 每次变化的弧度 // 速度
  12. public float Radius = 0.2f; // 半径 // 幅度
  13. private float radian = 0; // 弧度
  14. private Vector3 oldPos; // 开始时候的坐标
  15. private void Start()
  16. {
  17. oldPos = transform.position; // 将最初的位置保存到oldPos
  18. }
  19. private void Update()
  20. {
  21. radian += PerRadian / 100f; // 弧度每次加
  22. float temporaryValue = Mathf.Cos(radian) * Radius; // dy定义的是针对y轴的变量,也可以使用sin,找到一个适合的值就可以
  23. transform.position = oldPos + new Vector3(0, temporaryValue, 0);
  24. }
  25. }
  26. }