Move.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using UnityEngine;
  2. public class BouncingMovement : MonoBehaviour
  3. {
  4. // 控制物体的位移速度
  5. public float speed = 2f; // 控制位移速度
  6. // 控制物体的位移范围
  7. public float range = 5f; // 物体在该轴上最大位移范围
  8. // 控制物体的位移方向(X、Y、Z)
  9. public bool moveX = true;
  10. public bool moveY = false;
  11. public bool moveZ = false;
  12. // 内部变量,用于控制方向
  13. private Vector3 startPos;
  14. void Start()
  15. {
  16. // 记录物体的起始位置
  17. startPos = transform.position;
  18. }
  19. void Update()
  20. {
  21. // 计算物体沿指定轴的偏移量
  22. float offset = Mathf.Sin(Time.time * speed) * range;
  23. // 更新物体的位置,根据轴向控制
  24. if (moveX)
  25. {
  26. transform.position = new Vector3(startPos.x + offset, transform.position.y, transform.position.z);
  27. }
  28. else if (moveY)
  29. {
  30. transform.position = new Vector3(transform.position.x, startPos.y + offset, transform.position.z);
  31. }
  32. else if (moveZ)
  33. {
  34. transform.position = new Vector3(transform.position.x, transform.position.y, startPos.z + offset);
  35. }
  36. }
  37. }