Inessa 16 апр 2013, 17:02
NavMesh мне не подходит.
У меня по сюжету в нескольких локациях должны быть гонки на скутерах, которые используют нечто вроде воздушной подушки, т.е. движение должно осуществляться в 3-х мерном пространстве.
Для геймплея мне нужно, чтобы боты динамически отслеживали пространство вокруг себя в определенном радиусе и корректировали свое движение в соответствии с особенностями окружающего 3-х мерного ландшафта.
У объекта TerrainData существует функции - GetHeight и GetHeights.
1. Сначала думала использовать 1-ю функцию:
- function GetHeight (x : int, y : int) : float - (Gets the height at a certain point x,y).
Прогонять в 2-х циклах координаты по x и y в определенном диапазоне при перемещении NPC и получать поле координат вокруг бота.
Но потом я столкнулась с тем, что мне нужны то узловые точки сетки террейна (для точности), а не проинтерполированные между ними значения - как это получается при использовании функции GetHeight.
2. Существует также функция
- function GetHeights (xBase : int, yBase : int, width : int, height : int) : float[,]
- Description: Get an array of heightmap samples
Я предполагаю, что эта функция должна получать на входе базовые координаты x и y совместо с шириной и длинной террейна, а возвращать массив координат высот в узловых точках, которые попадают в заданный прямоугольник.
Действительно ли, эта функция работает так как я предполагаю?
Мне что-то не удается корректно ее использовать.