Example #1
0
        public static void AddToLoading(List <SceneReference> sceneDependsOn, SceneStarter starter)
        {
            if (_kernel == null)
            {
                throw new Exception("There is no Kernel. You have to create Kernel before loading scenes");
            }
            for (var i = 0; i < sceneDependsOn.Count; i++)
            {
                if (!_scenesDependsOnAvailable.Contains(sceneDependsOn[i].ScenePath))
                {
                    _sceneDependsOn.Enqueue(sceneDependsOn[i].ScenePath);
                    _scenesDependsOnAvailable.Add(sceneDependsOn[i].ScenePath);
                }
            }

            if (starter.HasSetup && starter.SceneSetup != null)
            {
                _sceneRegisteredSetups.Enqueue(starter.SceneSetup);
            }

            if (_coroutine == null)
            {
                _coroutine = _mainStarter.StartCoroutine(LoadScenes());
            }
        }
Example #2
0
        public static void PrepareKernel(SceneStarter mainStarter)
        {
            if (_kernel != null)
            {
                throw new Exception("Kernel has already created. You can have only one Kernel per Domain");
            }
            _kernel = new SceneKernel();
            _kernel.CreateBuilder();

            _mainStarter = mainStarter;
        }
Example #3
0
        public static void Initialize()
        {
            _sceneDependsOn           = new Queue <string>();
            _scenesDependsOnAvailable = new HashSet <string>();
            _sceneRegisteredSetups    = new Queue <SceneSetup>();
            _scenePostBuildSetups     = new Queue <SceneSetup>();

            _mainStarter = null;
            _kernel      = null;
            _coroutine   = null;
        }