Страница 1 из 1

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

СообщениеДобавлено: 22 окт 2019, 19:25
DanDiablo
Доброго времени суток, дамы и господа!
Я все со своими яблоками, будь они не ладны! Да они и так не ладны...

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

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

Синтаксис:
Используется 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?

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

Благодарю за внимание!

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

СообщениеДобавлено: 22 окт 2019, 20:28
waruiyume
Destroy(яблоко.gameObject, задержка);
https://docs.unity3d.com/ScriptReferenc ... stroy.html

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

СообщениеДобавлено: 23 окт 2019, 14:35
DimaJoke
функция Destroy() в качестве второго аргумента опционально принимает время, через какое этот объект удалять

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

СообщениеДобавлено: 24 окт 2019, 09:50
DanDiablo
Вот я олень, как все просто оказалось! Спасибо!