Exemple #1
0
        internal void Update(float time)
        {
            for (int i = 0; i < _gameObjects.Count; i++)
            {
                if (_gameObjects[i].IsActive)
                {
                    _gameObjects[i].Update(time);
                }
            }

            FrameQueue.ConsumeActions();

            for (int i = 0; i < _updatables.Count; i++)
            {
                _updatables[i].Update(time);
            }

            var toRemove = new List <GameObject>(_toRemove.Count);

            for (int i = 0; i < _toRemove.Count; i++)
            {
                var obj = _toRemove[i];
                if (obj.HasJobs)
                {
                    toRemove.Add(obj);
                }
                else
                {
                    obj.RemovedFromCurrentScene();
                }
            }
            _toRemove = toRemove;
        }