Лучший способ создавать разные зоны в Unity?

это моя демонстрация lvl, сделанная в блендере:

введите описание изображения здесь

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

я хочу, чтобы у игрока был флаг ... игрок внутри туннеля? = правда .. снаружи = ложь. и флаг постоянно обновляется

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

1-лучевая трансляция ... иметь несколько узлов, разбросанных по туннелю, особенно по углам ... если игрок может использовать лучи для ближайшего узла, без того, чтобы луч сначала попал в стену ... тогда он внутри ... ... ну, это может много проблем .. не надо их все перечислять: D

2- триггерные зоны .. имеют огромные кубические сетки вокруг туннеля. как только игрок покидает сетку зоны ... он помечается снаружи ... отлично, за исключением того, что это не будет точным, так как стена чертовски извилистая: D. .

3- нарисуйте плоскость между стенами туннеля ... как на полу ... если игрок находится на вершине этой конкретной плоскости. тогда он внутри туннеля, я не планирую делать пол ... но если придется. тогда будь то

4- нарисуйте цепочку кубиков низкого разрешения вдоль и внутри стен ... и заставьте их действовать как триггеры ... чтобы каждый раз, когда игрок пересекает стену, он будет проходить через них, и они сработают ... мне, возможно, придется иметь два параллельных поезда с каждой стороны .. чтобы выяснить, действительно ли игрок выходит из туннеля или входит в него

Я знаю, что это очень простой вопрос, но я думаю, что могу справиться лучше, чем предыдущие решения, которые я предлагал :( спасибо


person Ali Abdulla    schedule 02.12.2015    source источник
comment
Вы в 2D или в 3D? Если в 2D вы можете использовать многоугольный коллайдер в качестве триггера. Если в 3D, я бы поместил набор прямоугольных коллайдеров, которые достаточно близки к форме и снова такие же, как триггеры.   -  person Everts    schedule 03.12.2015
comment
им 3D. так что в основном решение 4 :) ..   -  person Ali Abdulla    schedule 03.12.2015
comment
Я бы действительно использовал набор коробочных коллайдеров, вы могли бы использовать сетчатый коллайдер, но я чувствую, что это будет много деталей, которые вам действительно не нужны.   -  person Everts    schedule 03.12.2015
comment
Коллайдер сетки будет работать достаточно хорошо, он не должен быть таким же высокополигональным, как фактическая геометрия, но он позволит вам иметь такое же разрешение деталей, как кубы, но с использованием одного коллайдера. Пока коллайдер сетки не выполняет никаких перемещений или вращений, Unity не нужно пересчитывать зоны столкновения.   -  person Draco18s no longer trusts SE    schedule 04.12.2015
comment
да, я делаю это прямо сейчас, спасибо :)   -  person Ali Abdulla    schedule 08.12.2015
comment
Не совсем отвечаю, но, если вы разместите этот вопрос в Unity Answers, у вас могут быть другие мнения.   -  person Marcos Saito    schedule 04.01.2016
comment
о, спасибо ... не знал   -  person Ali Abdulla    schedule 05.01.2016


Ответы (1)


Вы можете использовать решение 2, триггеры могут перекрываться и иметь разные формы (прямоугольник, сфера). Таким образом вы сможете получить более точную информацию о туннеле.

Всегда старайтесь избегать коллайдеров сетки из-за проблем с производительностью.

На всякий случай:

http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter.html

http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerExit.html

person Diego Prates de Andrade    schedule 16.02.2016