37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
|
|
|||
|
using UnityEngine;
|
|||
|
using DG.Tweening; // <20><><EFBFBD><EFBFBD>DoTween<65><6E><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>
|
|||
|
|
|||
|
public class SimplePathfindingDoTween : Fun
|
|||
|
{
|
|||
|
public Transform[] waypoints; // Ԥ<><D4A4><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
|||
|
public float moveDuration = 1f; // ÿ<><C3BF><EFBFBD><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
|||
|
private int currentWaypointIndex = 0; // <20><>ǰ·<C7B0><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//void Start()
|
|||
|
//{
|
|||
|
// // <20>ý<EFBFBD>ɫ<EFBFBD><C9AB>ʼ<EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
|||
|
// MoveToNextWaypoint();
|
|||
|
//}
|
|||
|
|
|||
|
void MoveToNextWaypoint(GameObject gameObject)
|
|||
|
{
|
|||
|
if (currentWaypointIndex < waypoints.Length)
|
|||
|
{
|
|||
|
// <20><>ȡ<EFBFBD><C8A1>һ<EFBFBD><D2BB>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
|||
|
Transform targetWaypoint = waypoints[currentWaypointIndex];
|
|||
|
|
|||
|
// ʹ<><CAB9>DoTweenʵ<6E><CAB5>ƽ<EFBFBD><C6BD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>Ŀ<EFBFBD><C4BF>λ<EFBFBD><CEBB>
|
|||
|
gameObject.transform.DOMove(targetWaypoint.position, moveDuration)
|
|||
|
.OnComplete(() => MoveToNextWaypoint(gameObject)); // <20>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>·<EFBFBD><C2B7><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
currentWaypointIndex++; // <20><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Debug.Log("<22><><EFBFBD><EFBFBD><EFBFBD>յ㣡");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|