Уничтожение объекта при столкновении с задержкой

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Уничтожение объекта при столкновении с задержкой

Сообщение DanDiablo 22 окт 2019, 19:25

Доброго времени суток, дамы и господа!
Я все со своими яблоками, будь они не ладны! Да они и так не ладны...

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

Вот код, отвечающий за уничтожение яблок в корзине (далее подсчет очков будет):

Синтаксис:
Используется csharp
    void OnCollisionEnter(Collision coll){
        GameObject collidedWith = coll.gameObject;

        switch (collidedWith.tag)
        {
                case "green":
                  Debug.Log("green");
                  Destroy(collidedWith);
                  break;

                case "yellow":
                  Debug.Log("yellow");
                  Destroy(collidedWith);
                  break;

                case "red":
                  Debug.Log("red");
                  Destroy(collidedWith);
                  break;

                case "bad":
                  Debug.Log("bad");
                  Destroy(collidedWith);
                  break;    
        }
 


Как я понимаю

Синтаксис:
Используется csharp
GameObject collidedWith = coll.gameObject;
 


coll.gameObject - это коллайдер того объекта, который столкнулся с корзиной.

Задержка делается через Coroutine, как я понял.

Допустим, можно как то так:

Синтаксис:
Используется csharp
   IEnumerator Dest(tada){
        Destroy(tada);
        yield;
    }

void OnCollisionEnter(Collision coll){
        GameObject collidedWith = coll.gameObject;

        switch (collidedWith.tag)
        {
                case "green":
                  Debug.Log("green");
                  StartCoroutine(Dest(tada), 1f);
                  break;

.....
}
 


Как мне в место tada передать в Coroutine coll.gameObject?

Или я как то не туда мыслю, можно как то еще делать?

Благодарю за внимание!
Я часть той силы, что хочет зла, но вечно совершает благо.
Аватара пользователя
DanDiablo
UNец
 
Сообщения: 17
Зарегистрирован: 03 авг 2019, 18:15
  • Сайт

Re: Уничтожение объекта при столкновении с задержкой

Сообщение waruiyume 22 окт 2019, 20:28

Destroy(яблоко.gameObject, задержка);
https://docs.unity3d.com/ScriptReferenc ... stroy.html
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Уничтожение объекта при столкновении с задержкой

Сообщение DimaJoke 23 окт 2019, 14:35

функция Destroy() в качестве второго аргумента опционально принимает время, через какое этот объект удалять
Что бы повзрослеть, человек должен преодолеть ошибки юности.

Поэтому я снова здесь..
Аватара пользователя
DimaJoke
UNITрон
 
Сообщения: 293
Зарегистрирован: 12 авг 2018, 18:59
Откуда: Ульяновск
  • Сайт

Re: Уничтожение объекта при столкновении с задержкой

Сообщение DanDiablo 24 окт 2019, 09:50

Вот я олень, как все просто оказалось! Спасибо!
Я часть той силы, что хочет зла, но вечно совершает благо.
Аватара пользователя
DanDiablo
UNец
 
Сообщения: 17
Зарегистрирован: 03 авг 2019, 18:15
  • Сайт


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24