123456789101112131415161718192021222324252627282930313233343536373839404142 |
- using UnityEngine;
- public class BouncingMovement : MonoBehaviour
- {
- // 控制物体的位移速度
- public float speed = 2f; // 控制位移速度
- // 控制物体的位移范围
- public float range = 5f; // 物体在该轴上最大位移范围
- // 控制物体的位移方向(X、Y、Z)
- public bool moveX = true;
- public bool moveY = false;
- public bool moveZ = false;
- // 内部变量,用于控制方向
- private Vector3 startPos;
- void Start()
- {
- // 记录物体的起始位置
- startPos = transform.position;
- }
- void Update()
- {
- // 计算物体沿指定轴的偏移量
- float offset = Mathf.Sin(Time.time * speed) * range;
- // 更新物体的位置,根据轴向控制
- if (moveX)
- {
- transform.position = new Vector3(startPos.x + offset, transform.position.y, transform.position.z);
- }
- else if (moveY)
- {
- transform.position = new Vector3(transform.position.x, startPos.y + offset, transform.position.z);
- }
- else if (moveZ)
- {
- transform.position = new Vector3(transform.position.x, transform.position.y, startPos.z + offset);
- }
- }
- }
|