Как увеличить зону столкновения / ударный эффект - PullRequest
0 голосов
/ 21 декабря 2018

Так что для фона я пытаюсь сделать свою первую игру, в основном это игра в стиле 3D-кирпича.Мои вопросы больше связаны с дизайном, любая помощь будет принята с благодарностью!

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

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

Я уверен, что должен быть очевидный ответ на это.Как мне увеличить «ударную» область шара / сферы?Есть ли способ заставить его двигаться в том же направлении, пока не уничтожит несколько кубов?

У меня есть все материалы коллайдера с отскоком 1.

1 Ответ

0 голосов
/ 21 декабря 2018

Не уверен насчет того, чтобы держать мяч в движении, но у меня есть решение уничтожить несколько кирпичей одновременно.Поскольку у всех сфер есть коллайдер, вы можете использовать OverlapSphere.Это проверяет все коллайдеры в сфере определенного радиуса.

private void DestroyMultiple(Vector3 hitBrickPosition)
{
    int radius = 4; //insert whatever radius you prefer
    Collider[] colliders = Physics.OverlapSphere(hitBrickPosition, radius);
    foreach(Collider col in colliders)
    {
         Destroy(col.gameObject);
    }
}

В качестве альтернативы, как сказал @zyonneo, вы можете увеличить размер радиуса коллайдера шара до collider.radius.Тем не менее, это увеличит радиус от центра шара, то есть разрушит кирпичи еще до того, как по ним ударит.Этого можно обойти, перемещая точку поворота при увеличении радиуса, но это слишком сложно.

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