Corner points of the path. (Read Only)
Also known as "waypoints", the corners define the places along a path where it changes direction (ie, the path consists of a number of straight-line moves between corners).
// Calculate the length of a NavMeshPath. A character will // typically move a slightly longer distance than this as a // result of its steering behaviour. function PathLength(path: NavMeshPath) { // The length is implicitly zero if there aren't at least // two corners in the path. if (path.corners.Length < 2) return; var previousCorner = path.corners[0]; var lengthSoFar = 0.0; // Calculate the total distance by adding up the lengths // of the straight lines between corners. for (var i = 1; i < path.corners.Length; i++) { var currentCorner = path.corners[i]; lengthSoFar += Vector3.Distance(previousCorner, currentCorner); previousCorner = currentCorner; } return lengthSoFar; }
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { float PathLength(NavMeshPath path) { if (path.corners.Length < 2) return; Vector3 previousCorner = path.corners[0]; float lengthSoFar = 0.0F; int i = 1; while (i < path.corners.Length) { Vector3 currentCorner = path.corners[i]; lengthSoFar += Vector3.Distance(previousCorner, currentCorner); previousCorner = currentCorner; i++; } return lengthSoFar; } }
import UnityEngine import System.Collections public class ExampleClass(MonoBehaviour): def PathLength(path as NavMeshPath) as float: if path.corners.Length < 2: return previousCorner as Vector3 = path.corners[0] lengthSoFar as float = 0.0F i as int = 1 while i < path.corners.Length: currentCorner as Vector3 = path.corners[i] lengthSoFar += Vector3.Distance(previousCorner, currentCorner) previousCorner = currentCorner i++ return lengthSoFar