Проблемы с дифференциацией того, какой коллайдер я используюC#

Место общения программистов C#
Ответить
Anonymous
 Проблемы с дифференциацией того, какой коллайдер я использую

Сообщение Anonymous »

В настоящее время у меня есть 2D -платформер, над которым я работаю, но я испытываю проблемы с тем, как сказать игре, как дифференцировать, в какой комнате я тоже двигаюсь. В настоящее время у меня есть 2 комнаты, которые мой персонаж «Heroknight» может перемещаться между ними. (В конце каждой комнаты был триггерный коллайдер, который инициировал бы движение камеры), однако, у объекта было несколько кружких коллайдеров, и, следовательно, запускал функцию 4 раза. Поэтому вместо этого я решил позволить 2D коллайдеру на фактической «дверце» выполнить работу, и это отлично работает для двух комнат, которые я настраиваю, так как он читает объект игрока в целом только в 1 раз и выполняет движение камеры Действия один раз. Номера? M_CurrentRoomNumber всегда будет точным, поскольку он увеличивает на 1, когда я двигаюсь через дверь. Но я хочу иметь возможность идти вперед и назад через этот дверной проем .. < /p>
Приведенный ниже код позволяет мне делать это с двумя комнатами, которые у меня есть. Я предполагаю, что мой вопрос: как мне это сделать без необходимости писать новый сценарий для каждого 2D коллайдера, который стоит в дверных проемах? Мне нужен какой -то способ дифференциации, какой Collider2d я вызываю. Или требуются несколько функций OnTriggerEnter2D? < /P>

Код: Выделить всё

private void OnTriggerEnter2D(Collider2D collision)
{
Debug.Log(collision.tag);

if (collision.tag == "Player")
{
if (m_player.m_currentRoomNumber == 0)
{
cam.enablePlayerCentering();
m_player.m_currentRoomNumber++;
}
else if (m_player.m_currentRoomNumber == 1)
{
m_player.m_currentRoomNumber--;
cam.recenterLastRoom();
}
}
}
Если это не может быть достигнуто, есть ли способ перенести Ontriggerevent2d обратно в объект Player (Hernight), и запустить его только один раз?
Кроме того, я понимаю, что, вероятно, есть лучшие способы обработки камеры, но будущий код потребует, чтобы игра узнала, в какой комнате я нахожу br /> Извините за путаницу. У меня иногда возникают проблемы, поэтому я старался быть тщательным.

Подробнее здесь: https://stackoverflow.com/questions/794 ... i-am-using
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»