怪物移动

This commit is contained in:
GL 2024-12-18 17:49:14 +08:00
parent 2b93b14699
commit 84ca89c647

View File

@ -22,35 +22,42 @@ public class SimplePathfindingDoTween : Fun
[Header("旋转的动画")]public GameObject obj;
public void MoveToNextWaypoint(GameObject gameObject,float moveSpeed)
{
public void MoveToNextWaypoint(GameObject gameObject, float moveSpeed)
{
if (currentWaypointIndex < waypoints._waypoints.Count)
{
// 获取下一个路径点
Transform targetWaypoint = waypoints._waypoints[waypoints._waypoints.Count-1];
// 获取目标路径点
Transform targetWaypoint = waypoints._waypoints[waypoints._waypoints.Count - 1];
// 计算路径点之间的距离
float distance = Vector3.Distance(gameObject.transform.position, targetWaypoint.position);
// 根据设置的速度计算时间
float timeToReach = distance*10 / moveSpeed; // 根据速度控制匀速移动的时间
// 使用DoTween的DOPath来平滑地移动到目标位置
float timeToReach = distance * 10 / moveSpeed; // 根据速度控制匀速移动的时间
// 获取路径的所有点
Vector3[] path = new Vector3[waypoints._waypoints.Count - currentWaypointIndex];
for (int i = 0; i < path.Length; i++)
{
path[i] = waypoints._waypoints[currentWaypointIndex + i].position;
if (i!=0&&i!= path.Length-1)
{
// 在Y轴方向上做一定的随机改变可以设置一个波动范围
path[i].y += Random.Range(-0.1f, 0.1f); // 修改 Y 值的波动范围
}
}
// 使用DoTween的DOPath来平滑地移动
gameObject.transform.DOPath(path, timeToReach, PathType.Linear)
.SetEase(Ease.Linear).OnUpdate(() => RotateTowardsTarget()); // 每次更新时调整旋转
.SetEase(Ease.Linear)
.OnUpdate(() => RotateTowardsTarget()); // 每次更新时调整旋转
}
else
{
Debug.Log("到达终点!");
}
}
public void PauseAnimation()
{