Unity 3d ondular рельеф местности - PullRequest
0 голосов
/ 17 ноября 2018

Я делаю 3d-игру, в которой мне нужно сделать какое-то поколение ландшафта, чтобы иметь бесконечный и случайный уровень. Рельеф местности должен быть повышенным и пониженным, например:

https://imgur.com/a/prTuRl0

Я использовал перлин-шум для создания рельефа, с несколькими самолетами в очереди, обновляя их по мере продвижения игрока вперед (у меня есть позиция Z последней плоскости, поэтому, когда я обновляюсь, когда я смотрю из очереди, первый в линии, удалите ее и снова поставьте в очередь с новыми вершинами через mathf.PerlinNoise (0, zPosition)) причина, по которой у меня 0 в первом параметре, заключается в том, что плоскости равномерны по оси x

Я бы хотел, чтобы геймплей был похож на дюны, но в 3d, где игрок управляет мячом, щелчок, когда он заземлен, дает ему скорость, щелчок, когда в эфире сбивает его, и он может получать очки и полосы плавным ходом. через спуск или умереть, если он упадет против подъема

проблема:

https://imgur.com/a/sdZp1qQ

Шум перлина не всегда вверх и вниз, как мне нужно, иногда он имеет такие кривые в середине, которые заставляют мяч прыгать и имеют странное нежелательное движение ... благодарны за любую помощь по этому вопросу.

1 Ответ

0 голосов
/ 19 ноября 2018

Я исправил эту проблему, используя функцию нормального распределения для генерации волн, путаясь с параметрами, я могу добавить ширину или высоту к моей волне Используя 5 плоскостей на каждую «волну» (каждая волна представляет собой массив игровых объектов из 5 плоскостей), и просто проходите через вершины оси x, меняя все их высоты до одинакового значения, вычисленного в функции, увеличивая x и повторяя его снова

...