public static void SaveData(Scene scene)
        {
            IDataPersister[] persisters = GetDataPersisters(scene);

            SceneData sceneData = SceneDataRepository.GetSceneData(scene);

            foreach (IDataPersister persister in persisters)
            {
                DataSettings key = persister.GetDataSettings();
                sceneData.Store(key.dataKey, persister.SaveData(), key.persistenceType);
            }
        }
        public static void LoadData(Scene scene)
        {
            IDataPersister[] persisters = GetDataPersisters(scene);

            SceneData sceneData = SceneDataRepository.GetSceneData(scene);

            foreach (var data in sceneData.SavedData)
            {
                IDataPersister persister = persisters.FirstOrDefault(p => Equals(data.Key, p.GetDataSettings().dataKey));
                if (persister == null)
                {
                    continue;
                }

                persister.LoadData(data.Value.Data);
            }
        }