Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

NavMeshPath.corners

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public var corners: Vector3[];
public Vector3[] corners;

Описание

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 0;
	
	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 0; 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; } }