void OnDestroy() { if (NavMesh2D.SceneHasNavmesh()) { BreakLink(); } }
void Update() { if (NavMesh2D.SceneHasNavmesh() == false) { PointA = null; PointB = null; return; } EnforceConnection(); if (LinkEstablished && !LinkActive) { BreakLink(); } else if (LinkEstablished == false && LinkActive) { EstablishLink(); } else if (((Vector3)_lastPointAPos != transform.TransformPoint(PointAPos) || (Vector3)_lastPointBPos != transform.TransformPoint(PointBPos)) || (_lastBidirectional != Bidirectional)) { BreakLink(); EstablishLink(); } }
void OnDrawGizmos() { Gizmos.DrawWireSphere(transform.position, 0.05f); if (LinkEstablished == false || NavMesh2D.SceneHasNavmesh() == false) { return; } Gizmos.color = Color.white; GizmosExtra.GizmosDrawArrow(NavMesh2D.GetNavMeshObject().GetNode(PointA).position + Vector3.back * 0.1f, NavMesh2D.GetNavMeshObject().GetNode(PointB).position + Vector3.back * 0.1f, 0.2f); if (Bidirectional) { GizmosExtra.GizmosDrawArrow(NavMesh2D.GetNavMeshObject().GetNode(PointB).position + Vector3.back * 0.1f, NavMesh2D.GetNavMeshObject().GetNode(PointA).position + Vector3.back * 0.1f, 0.2f); } }