Как обнаружить столкновение только один раз в Unity 3D? - PullRequest
0 голосов
/ 11 декабря 2018

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

Сценарий:

private void OnCollisionEnter(Collision collision){

    if(collision.gameObject.CompareTag("Wall")){

        if(WallFloatingText){
            ShowWallFloatingText();
            count = count + 3;
            countText.text = count.ToString();
        }
    }
}

1 Ответ

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

Я бы предложил создать флаг, обнаружив, что стена уже попала.

private bool collisonOccured = false;
private void OnCollisionEnter(Collision collision){
    if(collisonOccured)
        return;
    if(collision.gameObject.CompareTag("Wall")){
        if(WallFloatingText){
            ShowWallFloatingText();
            count = count + 3;
            countText.text = count.ToString();
            collisonOccured = true;
        }
    }
}

Не забудьте выключить флаг

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