11using System . Collections ;
22using System . Collections . Generic ;
3+ using System . Linq ;
34using UnityEngine ;
45using UnityEngine . Playables ;
56
@@ -10,8 +11,11 @@ public class DataPersistanceManager : MonoBehaviour
1011 [ Header ( "File Storage Config" ) ]
1112 [ SerializeField ] private string fileName ;
1213
14+ [ SerializeField ] private bool useEncryption ;
15+
1316 private FileHandler dataHandler ;
1417 private GameData gameData ;
18+ private List < IDataPersistance > dataPersistanceObjects ;
1519
1620 private void Awake ( )
1721 {
@@ -23,11 +27,9 @@ private void Awake()
2327 {
2428 Debug . Log ( "Found more than one Data Persistance Manager in the scene" ) ;
2529 }
26- }
2730
28- private void Start ( )
29- {
30- this . dataHandler = new FileHandler ( Application . persistentDataPath , fileName ) ;
31+ this . dataHandler = new FileHandler ( Application . persistentDataPath , fileName , useEncryption ) ;
32+ this . dataPersistanceObjects = FindAllDataPersistanceObjects ( ) ;
3133 LoadGame ( ) ;
3234 }
3335
@@ -46,18 +48,34 @@ public void LoadGame()
4648 NewGame ( ) ;
4749 }
4850
49- Debug . Log ( "Loaded score = " + gameData . score ) ;
51+ foreach ( IDataPersistance dataPersistanceObj in dataPersistanceObjects )
52+ {
53+ dataPersistanceObj . LoadData ( gameData ) ;
54+ }
55+
56+ //Debug.Log("Loaded score = " + gameData.score);
5057 }
5158
5259 public void SaveGame ( )
5360 {
61+ foreach ( IDataPersistance dataPersistanceObj in dataPersistanceObjects )
62+ {
63+ dataPersistanceObj . SaveData ( ref gameData ) ;
64+ }
65+
5466 dataHandler . Save ( gameData ) ;
5567
56- Debug . Log ( "Saved score = " + gameData . score ) ;
68+ // Debug.Log("Saved score = " + gameData.score);
5769 }
5870
5971 private void OnApplicationQuit ( )
6072 {
6173 SaveGame ( ) ;
6274 }
75+ private List < IDataPersistance > FindAllDataPersistanceObjects ( )
76+ {
77+ IEnumerable < IDataPersistance > dataPersistanceObjects = FindObjectsOfType < MonoBehaviour > ( ) . OfType < IDataPersistance > ( ) ;
78+
79+ return new List < IDataPersistance > ( dataPersistanceObjects ) ;
80+ }
6381}
0 commit comments