Глубина в 2D.

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Глубина в 2D.

Сообщение Aver 17 фев 2018, 16:21

В 2D проекте, есть 3 полосы движения которые отличаются по удаленности от пользователя. При прыжке или падении с высоты персонаж должен приземляться на свою полосу, и тут у меня произошла затыка с самого начала. 2D колайдеры не жрут координату Z. Им она параллельна. То есть персонаж падает на ближайщий колайдер по Y. Суть вопроса - как легко и эллегантно обойти данный геморой.
Как писал выше, разделение по оси Z 2D колайдера по фиг.

2D колайдер игрока не работает с 3D колайдером земли, если таковой поставить.
Игрок это спрайт, на него нельзя повесить 3D колайдер.
Переводить все на 3D - как то тупо для 2D игры.
Динамически, при каждом переходе по глубине отключать взаимодейтсвие с остальными колайдерами - как то, как мне кажется, через жопу решение. Ибо кроме самой поверхности земли будут препятствия, враги, что же их все каждый раз проверять и отклюбчать-подключать ?
От слоев смог добиться только очередности отрисовки.

Что я упустил или где я затупил ?
Aver
UNец
 
Сообщения: 22
Зарегистрирован: 17 фев 2018, 16:09

Re: Глубина в 2D.

Сообщение samana 17 фев 2018, 17:01

Aver писал(а):Игрок это спрайт, на него нельзя повесить 3D колайдер.

Можно, сколько угодно.

Aver писал(а):Динамически, при каждом переходе по глубине отключать взаимодейтсвие с остальными колайдерами - как то, как мне кажется, через жопу решение. Ибо кроме самой поверхности земли будут препятствия, враги, что же их все каждый раз проверять и отклюбчать-подключать ?

Не вижу ничего плохого в этом. Если ситуация уникальная, то и решение приходится делать нестандартным, странным, хитрым и тп. лишь бы достичь цели. Вы можете для каждого вида глубины сделать свой слой (поместить все платформы, врагов и тп на слой своей глубины), а персонажу просто назначать тот слой, на глубине которого он находится, вроде очень просто. Я имею ввиду эти слои https://docs.unity3d.com/ru/current/Man ... ision.html когда можно регулировать - что с чем сталкивается, а что нет.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Глубина в 2D.

Сообщение Aver 17 фев 2018, 17:19

Можно, сколько угодно.

Таки нельзя.


Не вижу ничего плохого в этом...

Неужели для такой, бросающейся в глаза, задачи, нет более изящного решения ? Конечно, если ничего не найдется, буду шаманить с бубном, отключать взаимодействие колайдеров скриптом.
Aver
UNец
 
Сообщения: 22
Зарегистрирован: 17 фев 2018, 16:09

Re: Глубина в 2D.

Сообщение seaman 17 фев 2018, 17:29

Разместить коллайдеры разной глубины в разных слоях. Устанавливать коллайдер игрока в соответствующий слой. В установках физики указать что коллайдеры разных слоев не сталкиваются.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Глубина в 2D.

Сообщение Aver 18 фев 2018, 02:03

В установках физики указать что коллайдеры разных слоев не сталкиваются.


Логично. Но я как то не знал что можно где то в настройках разделить колайдеры по слоям. Это где такое настраивается ?
Aver
UNец
 
Сообщения: 22
Зарегистрирован: 17 фев 2018, 16:09

Re: Глубина в 2D.

Сообщение BFZ 18 фев 2018, 02:11

Aver писал(а):
В установках физики указать что коллайдеры разных слоев не сталкиваются.


Логично. Но я как то не знал что можно где то в настройках разделить колайдеры по слоям. Это где такое настраивается ?

Вот это наверное.
Edit > Project Settings > Physics 2D > Layer Collision Matrix
BFZ
UNITрон
 
Сообщения: 252
Зарегистрирован: 28 июн 2017, 02:16

Re: Глубина в 2D. Решено.

Сообщение Aver 18 фев 2018, 02:16

seaman писал(а):Разместить коллайдеры разной глубины в разных слоях. Устанавливать коллайдер игрока в соответствующий слой. В установках физики указать что коллайдеры разных слоев не сталкиваются.


Все, нашел. Большое сенкс. Я бы не скоро додумался искать в настройках физики. А эту таблицу там вообще не рассматривал. Там надписи вертикальные мне лень было их читать. Пошел создавать следующий банальный вопрос.
Aver
UNец
 
Сообщения: 22
Зарегистрирован: 17 фев 2018, 16:09

Re: Глубина в 2D.

Сообщение Aver 18 фев 2018, 02:17

BFZ писал(а):
Aver писал(а):
В установках физики указать что коллайдеры разных слоев не сталкиваются.


Логично. Но я как то не знал что можно где то в настройках разделить колайдеры по слоям. Это где такое настраивается ?

Вот это наверное.
Edit > Project Settings > Physics 2D > Layer Collision Matrix


Да это оно, но я успел найт сам)
Aver
UNец
 
Сообщения: 22
Зарегистрирован: 17 фев 2018, 16:09

Re: Глубина в 2D.

Сообщение immeasurability 19 фев 2018, 12:21

для таких целей лучше уже 3D физику использовать
иначе при создание объектов для полосы придется каждый раз указывать нужный слой
Discord era#6140

youtube.com/user/immeasurability/videos
Аватара пользователя
immeasurability
Адепт
 
Сообщения: 1097
Зарегистрирован: 08 авг 2013, 18:09

Re: Глубина в 2D.

Сообщение seaman 19 фев 2018, 12:49

В любом случае лучше указывать слой SortingLayer - для перекрытия более далеких ближними.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21