Во-первых, я бы рекомендовал использовать центростремительный сплайн Catmull-Rom , потому что он следует точным точкам и требует меньше точек для генерации (также рисует только между p1 и p2), но я не знаю, что вы хотите добиться этого:
Я бы преобразовал ваш Безье в 2-мерный Безье и работал бы с ним только в 2-мерном пространстве, а затем, когда вы рисуете (визуализируете), вы присваиваете ему значение Y, используя https: //docs.unity3d.com/ScriptReference/Terrain.SampleHeight.html
Я делаю это со своими сплайнами, и это дает довольно точный сплайн в конце (генерация дороги)
[119 ] ОБРАТИТЕ ВНИМАНИЕ !: Чтобы неявное преобразование Vector2 и Vector3 не соответствовало вашим потребностям, вам нужно добавить метод расширения для преобразования Vector3 в Vector2 :) (Vector (x, y, z) будет Vector (x, y), но вам нужен Вектор (x, z))
Редактировать 1:
Пример кода, как считывать фактическую высоту местности через Terrain.SampleHeight();
по координате Vector2
что вы уверены, что выше ландшафта, если Vector2
не выше terrain он вернет вам ноль или высоту ландшафта шкафов, так что я не уверен, какой атм (не могу проверить сейчас):)
public static float GetPoint_On_Terrain(Vector2 point){
float terrainHeightAtPoint = Terrain.activeTerrain.SampleHeight(new Vector3(point.x, 0, point.y));
return new Vector3(point.x, terrainHeightAtPoint,point.y);
}
Official documentation for HTMLParser
: Python 2.7
>>> import HTMLParser
>>> pars = HTMLParser.HTMLParser()
>>> pars.unescape('© €')
u'\xa9 \u20ac'
>>> print _
© €
Official documentation for HTMLParser
: Python 3
>>> from html.parser import HTMLParser
>>> pars = HTMLParser()
>>> pars.unescape('© €')
© €
Здесь есть функция , которая делает это, как указано в посте, на который указал Фред. Скопировано здесь, чтобы сделать вещи проще.
Благодарим Фреда Ларсона за ссылку на другой вопрос о SO. Благодарим dF за публикацию ссылки.