Esempio n. 1
0
        internal void Update()
        {
            for (var i = 0; i < _chains.Count; i++)
            {
                AsyncChain chain = _chains[i];
                ChainLayer layer = _chainsLayers[(int)chain.layer];
                if (layer.paused)
                {
                    continue;
                }
                AsyncCommandResult updateResult = chain.UpdateChain();

                if (updateResult == AsyncCommandResult.Exception)
                {
                    CustomDebug.Log($"Cain '{chain.id}' finished terminated with exception");
                }

                if (!chain.isComplete && updateResult == AsyncCommandResult.Ok)
                {
                    continue;
                }
                chain.ReportComplete();
                _chainsLayers[(int)chain.layer].Dec();
                _chains.RemoveAt(i);
                i--;
            }
        }
Esempio n. 2
0
 internal PlannerSynchronizationContext()
 {
     _chainsLayers = new ChainLayer[(int)AsyncLayer.Game + 1];
     for (var i = 0; i < _chainsLayers.Length; i++)
     {
         _chainsLayers[i] = new ChainLayer();
     }
 }