35 lines
1014 B
C#
35 lines
1014 B
C#
using UnityEngine;
|
|
using System.Collections;
|
|
|
|
public class PathFollower : Seek
|
|
{
|
|
public Path path;
|
|
public float pathOffset = 0.0f;
|
|
float currentParam;
|
|
|
|
public override void Awake()
|
|
{
|
|
base.Awake();
|
|
target = new GameObject();
|
|
currentParam = 0f;
|
|
}
|
|
|
|
public override Steering GetSteering()
|
|
{
|
|
currentParam = path.GetParam(transform.position, currentParam);
|
|
float targetParam = currentParam + pathOffset;
|
|
|
|
// Получаем позицию цели от пути
|
|
Vector3 targetPosition = path.GetPosition(targetParam);
|
|
|
|
// **ИСПРАВЛЕНИЕ "ПОЛЕТОВ"**
|
|
// Принудительно ставим цель на ту же высоту, что и агент
|
|
targetPosition.y = transform.position.y;
|
|
|
|
// Устанавливаем позицию цели для Seek
|
|
target.transform.position = targetPosition;
|
|
|
|
return base.GetSteering();
|
|
}
|
|
}
|