using System.Collections.Generic; using System.Linq; using Sirenix.OdinInspector; using Unity.AI.Navigation; using UnityEngine; using VOID.Generic.Objects.Abstract; namespace VOID.Generic.Objects.Traversable { [RequireComponent(typeof(NavMeshLink))] public class TraversableObject : AbstractObject { [Title("=== Traversable properties ===")] public TraversableObjectData traversableData; private void OnDrawGizmosSelected() { if (traversableData.path.Count > 1) { Gizmos.color = Color.blue; traversableData.path.ForEach(t => { var pos = t.position; Gizmos.DrawSphere(pos, 0.05f); Gizmos.DrawLine(pos, pos + t.forward * 0.25f); }); Gizmos.DrawLineList(traversableData.path.Select(t => t.position).ToArray()); } } protected override List GetObjectComponents() { return base.GetObjectComponents() .Union(new List { traversableData }) .ToList(); } } }