ElectricPointMover.cs 907 B

12345678910111213141516171819202122232425262728293031
  1. using UnityEngine;
  2. public class ElectricPointMover : MonoBehaviour
  3. {
  4. public Transform[] pathPoints; // 路径点,Inspector里赋值
  5. public float speed = 5f;
  6. private int currentPointIndex = 0;
  7. void Start()
  8. {
  9. if (pathPoints.Length > 0)
  10. transform.position = pathPoints[0].position; // 初始化位置到第一个点
  11. }
  12. void Update()
  13. {
  14. if (pathPoints.Length == 0) return;
  15. Transform target = pathPoints[currentPointIndex];
  16. // 向目标点移动
  17. transform.position = Vector3.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
  18. // 判断是否到达目标点
  19. if (Vector3.Distance(transform.position, target.position) < 0.001f)
  20. {
  21. currentPointIndex = (currentPointIndex + 1) % pathPoints.Length; // 循环路径
  22. //Debug.LogError(target.name);
  23. }
  24. }
  25. }