Как я могу заставить коллизии работать должным образом в Unity2D? - PullRequest
1 голос
/ 11 июля 2019

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

Я пытался изменить переменные на RigidBody2D и BoxCollider2D, они установлены на кинематическую и запускаются при непрерывном столкновении, но кажется, что ничего не работает

вот мой код в c #

public void CheckForEnemyCollisionWithArrows(GridMap gridMap)
{
    for (int i = 0; i < spawnedEnemies.Count; i++)
    {
        for (int j = 0; j < projectiles.Count; j++)
        {
            if (
                    spawnedEnemies[i].boxCollider.IsTouching(projectiles[j].boxCollider) 
                    && !IntMask.Query(spawnedEnemies[i].flag, (int)EnemyFlags.IS_DYING)
               )
            {
                spawnedEnemies[i].SetEnemyFlag(EnemyFlags.WAS_HIT_TO_DEATH);
                projectiles[j].wasDestroyed = true;
            }
        }
    }
}
...