Size: a a a

2021 January 24

AN

Aleksandr Novik in unity3d.ru
я понял что ты хочешь сделать, но я думаю что можно как-то покрасивее сделать
источник

P

Phantom in unity3d.ru
Aleksandr Novik
я понял что ты хочешь сделать, но я думаю что можно как-то покрасивее сделать
Ну
источник

P

Phantom in unity3d.ru
Тут надо еще одна корутина
источник

AN

Aleksandr Novik in unity3d.ru
ага)
источник

P

Phantom in unity3d.ru
Чтобы обернуть их
источник

P

Phantom in unity3d.ru
И не менять конечную
источник

I

Indra in unity3d.ru
Phantom
Тут надо еще одна корутина
и потом останется только монитор прих#$%чить)
источник

P

Phantom in unity3d.ru
Сделать корутину, которая будет получать на вход корутину и коллбэк, выполнять в себе корутину, вызывать коллбэк.
Потом корутину которая в цикле запускает корутину которую описал выше, передает коллбек, в котором нужно делать + 1, количество, и если равна размеру списка, взывать конечный коллбек
источник

AN

Aleksandr Novik in unity3d.ru
в голову лезут варианты с кучей аллокаций, лучше уж считать сколько выполнилось и сравнивать с количеством списка
источник

P

Phantom in unity3d.ru
источник

I

Indra in unity3d.ru
сделал
источник

P

Phantom in unity3d.ru
Aleksandr Novik
в голову лезут варианты с кучей аллокаций, лучше уж считать сколько выполнилось и сравнивать с количеством списка
Ну я это и сказал
источник

P

Phantom in unity3d.ru
Но надо заврапать в что то
источник

I

Indra in unity3d.ru
Phantom
Сделать корутину, которая будет получать на вход корутину и коллбэк, выполнять в себе корутину, вызывать коллбэк.
Потом корутину которая в цикле запускает корутину которую описал выше, передает коллбек, в котором нужно делать + 1, количество, и если равна размеру списка, взывать конечный коллбек
        private IEnumerator OrderElements(IEnumerator[] movers, Action callback)
       {
           var cors = new Coroutine[movers.Length];
           for (var i = 0; i < movers.Length; i++)
           {
               cors[i] = StartCoroutine(movers[i]);
           }

           foreach (var cor in cors)
           {
               yield return cor;
           }
           Debug.Log("i waited enough");
           callback();
       }
источник

P

Phantom in unity3d.ru
Indra
        private IEnumerator OrderElements(IEnumerator[] movers, Action callback)
       {
           var cors = new Coroutine[movers.Length];
           for (var i = 0; i < movers.Length; i++)
           {
               cors[i] = StartCoroutine(movers[i]);
           }

           foreach (var cor in cors)
           {
               yield return cor;
           }
           Debug.Log("i waited enough");
           callback();
       }
Как бы, это не параллельно
источник

P

Phantom in unity3d.ru
Или
источник

I

Indra in unity3d.ru
Phantom
Как бы, это не параллельно
параллельно :)
источник

P

Phantom in unity3d.ru
А да, ты другой уже объект отправляешь ему
источник

P

Phantom in unity3d.ru
Ясно, понятно
источник

P

Phantom in unity3d.ru
Indra
        private IEnumerator OrderElements(IEnumerator[] movers, Action callback)
       {
           var cors = new Coroutine[movers.Length];
           for (var i = 0; i < movers.Length; i++)
           {
               cors[i] = StartCoroutine(movers[i]);
           }

           foreach (var cor in cors)
           {
               yield return cor;
           }
           Debug.Log("i waited enough");
           callback();
       }
Вместо этого, можно было сделать так
источник