This commit is contained in:
Alex38Lyon
2025-06-03 12:00:47 +02:00
parent ed8041abcd
commit 878ea46cac
1300 changed files with 527178 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
using System.Collections.Generic;
using UnityEngine;
namespace Unity.FPS.AI
{
public class PatrolPath : MonoBehaviour
{
[Tooltip("Enemies that will be assigned to this path on Start")]
public List<EnemyController> EnemiesToAssign = new List<EnemyController>();
[Tooltip("The Nodes making up the path")]
public List<Transform> PathNodes = new List<Transform>();
void Start()
{
foreach (var enemy in EnemiesToAssign)
{
enemy.PatrolPath = this;
}
}
public float GetDistanceToNode(Vector3 origin, int destinationNodeIndex)
{
if (destinationNodeIndex < 0 || destinationNodeIndex >= PathNodes.Count ||
PathNodes[destinationNodeIndex] == null)
{
return -1f;
}
return (PathNodes[destinationNodeIndex].position - origin).magnitude;
}
public Vector3 GetPositionOfPathNode(int nodeIndex)
{
if (nodeIndex < 0 || nodeIndex >= PathNodes.Count || PathNodes[nodeIndex] == null)
{
return Vector3.zero;
}
return PathNodes[nodeIndex].position;
}
void OnDrawGizmosSelected()
{
Gizmos.color = Color.cyan;
for (int i = 0; i < PathNodes.Count; i++)
{
int nextIndex = i + 1;
if (nextIndex >= PathNodes.Count)
{
nextIndex -= PathNodes.Count;
}
Gizmos.DrawLine(PathNodes[i].position, PathNodes[nextIndex].position);
Gizmos.DrawSphere(PathNodes[i].position, 0.1f);
}
}
}
}