Beispiel #1
0
        private void Awake()
        {
            GlobalContextData = GameObject.FindGameObjectWithTag(DataConsts.GLOBAL_CONTEXT_TAG)
                                .GetComponent <GlobalContext>();

            SceneName = SceneManager.GetActiveScene().name;
            MapEntityStates.ForEach(x => x.State = false);

            var loadedSceneState = GlobalContextData.LoadSceneData(SceneName);

            if (loadedSceneState != null)
            {
                loadedSceneState.boolStates.ForEach(x =>
                {
                    var boolState = MapEntityStates.FirstOrDefault(ent => ent.name == x.name);

                    if (boolState != null)
                    {
                        boolState.State = x.state;
                    }
                });

                OnSceneDataLoaded?.Invoke();
            }
        }
Beispiel #2
0
        private void Awake()
        {
            GlobalDataContext = FindObjectOfType <GlobalDataContext>();
            EntityWithState[] existingWithState = FindObjectsOfType <EntityWithState>();

            // Check for objects in scene that have persistent state
            MapEntityBoolStates = existingWithState.Length > 0 ?
                                  existingWithState
                                  .Select(x => x.BoolStateObject)
                                  .Distinct()
                                  .ToList() : new List <BoolSaveState>();

            MapEntityBoolStates.ForEach(x => x.State = false);

            MapEntityQtyStates = existingWithState.Length > 0 ?
                                 existingWithState
                                 .Select(x => x.QtyStateObject)
                                 .Distinct()
                                 .ToList() : new List <QuantitySaveState>();

            MapEntityQtyStates.ForEach(x => x.State = 0);

            // Load in and bootstrap
            SceneName = SceneManager.GetActiveScene().name;
            var loadedSceneState = GlobalDataContext.LoadSceneData(SceneName);

            if (loadedSceneState != null)
            {
                loadedSceneState.boolStates.ForEach(x =>
                {
                    var boolState = MapEntityBoolStates.FirstOrDefault(ent => ent.name == x.name);

                    if (boolState != null)
                    {
                        boolState.State = x.state;
                    }
                });

                loadedSceneState.quantityStates.ForEach(x =>
                {
                    var qtyState = MapEntityQtyStates.FirstOrDefault(ent => ent.name == x.name);

                    if (qtyState != null)
                    {
                        qtyState.State = x.state;
                    }
                });

                OnSceneDataLoaded?.Invoke();
            }
        }