Select your preferred scripting language. All code snippets will be displayed in this language.
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