UnityCommon/Role/move/2D/SimplePathfindingDoTween.cs

37 lines
1.1 KiB
C#
Raw Normal View History

2024-12-04 05:50:39 +08:00
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>յ㣡");
}
}
}