Я пытался сделать так, чтобы при нажатии клавиши столкновение отключалось для всех пар игроков и стен. Я знаю, что код Physics2D.IgnoreCollision
выполняется, но игроки по-прежнему не могут пройти сквозь стены.
Если это помогает, игроки имеют компоненты RigidBody2D
и BoxCollider2D
, а стены имеют компоненты PlatformEffector2D
и BoxCollider2D
.
Ниже приведен код внутри функции обновления, которую я пытаюсь использовать для отключения столкновения.
if (Input.GetKeyDown (KeyCode.I))
{
foreach (var player in allPlayers)
{
BoxCollider2D playerCollider = player.GetComponent<BoxCollider2D>();
if (playerCollider != null)
{
foreach (var wall in allWalls)
{
BoxCollider2D wallCollider = player.GetComponent<BoxCollider2D>();
if (wallCollider != null)
{
Physics2D.IgnoreCollision (playerCollider, wallCollider, true);
}
}
}
}
}