Тестирование столкновения 2D немедленно - PullRequest
0 голосов
/ 01 ноября 2019

Я хочу иметь возможность создавать / перемещать 2D коллайдер (коробочный коллайдер) и немедленно проверять его данные о столкновениях, не дожидаясь запуска Unity Physics.

ps Мне нужно перемещать коллайдер в нескольких местах вСцена в одном кадре и проверка столкновения в нескольких местах.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Я верю, что с 2D-коллайдерами вы также можете просто использовать что-то вроде:

GetComponent<BoxCollider2D>().IsTouching();

Это будет просто проверить, касается ли 2D-коллайдер другого коллайдера, и вы также можете пройти маску слоя, чтобы проверить:

GetComponent<BoxCollider2D>().IsTouching(LayerMask.NameToLayer("LayerYouWantToCheck"));
0 голосов
/ 01 ноября 2019

Чтобы попробовать столкновения со Сценой, можно использовать Physics.BoxCast.

См. Этот пример из документации Unity:

    void FixedUpdate()
    {
        //Test to see if there is a hit using a BoxCast
        //Calculate using the center of the GameObject's Collider(could also just use the GameObject's position), half the GameObject's size, the direction, the GameObject's rotation, and the maximum distance as variables.
        //Also fetch the hit data
        m_HitDetect = Physics.BoxCast(m_Collider.bounds.center, transform.localScale, transform.forward, out m_Hit, transform.rotation, m_MaxDistance);
        if (m_HitDetect)
        {
            //Output the name of the Collider your Box hit
            Debug.Log("Hit : " + m_Hit.collider.name);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...