Unity2d -как сделать круглый игровой мир?

Добрый!
Итак, есть задумка, но возникли траблы с воплощением, глубокое яндексование не особо помогло.

Суть - как можно реализовать в Юнити2д круглый игровой мир (планета, по\под поверхностью можно передвигаться).
Пример - Reus., но на сколько понимаю, там процедурная генерация из окргулых террайнов - а мне нужна полностью "ручная" проработка мира. Сама игра ближе к платформеру по жанру.

Если просто банально создать круг и вертеть геймкамеру вокруг его центра - то, на сколько понимаю, будет не особо весело расставлять игровые объекты по кругу, и если планета достаточно большая - то нет уверенности в том, что не будет слишком большой нагрузки на проц.
Кроме того, вероятно, можно крутить саму планету по ходу движения игрока - тогда можно пользоваться нативной "гравитацией" юнити для персонажа, а не переписывать гравитацию к центру планеты.
Так же, так как подразумевается, что нужна возможность использовать классические для платформеров "парящие" блоки - то возникает вопрос с тем, что в круглом мире блоки должны быть секторами круга, что совсем уж жесть. Появилась мысль воплотить иллюзию круглой планеты с помощью искажений камеры - но что-то этот подход вызывает сомнения)

Какие мысли? Спасибо.
  • Вопрос задан
  • 1144 просмотра
Решения вопроса 1
@fridriekh
Фулл-тайм эникей
Google 1 : unity 2d circular planet gravity
Google 2 : Unity 2d Point Effector

Unity Tutorial: Faux Gravity (walk on planets) - немного устаревший урок, но общий принцип можно понять (наверно)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Griboks
@Griboks Куратор тега Unity
Сделайте плоскую карту. Если нужна повторная пробежка по планете, телепортируйте игрока в начало карты.
Ответ написан
demon416nds
@demon416nds
Разработчик на чем попало
а таки зачем?
если искажения видны то диаметр и соответственно периметр у вашей планеты малы и соответственно уровень будет коротким.
ну и при маленькой планете искажения будут не только визуальными
вектор гравитации будет меняться довольно быстро за что вам игроки вряд ли скажут спасибо
Ответ написан
Как вариант hex sphere. А сделать гравитацию в центр относительно просто. Берем rigibody, нормализируем его позицию, умножаем на -g(минус нужен чтобы развернуть вектор во внутрь), прибавляем как импульс и повторяем для всех остальных rigibody.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы