@@ -13,18 +13,18 @@ public class SaveLoadManager : ScriptableObject
1313 {
1414 [ Header ( "Settings" ) , SerializeField ] private string defaultFolder = "SaveData" ;
1515 public string DefaultFolder => defaultFolder ;
16-
16+
1717 [ SerializeField ] private string baseFolder = "GameData" ;
1818 public string BaseFolder => baseFolder ;
19-
19+
2020 [ SerializeField ] private SerializationMethodType saveMethod = SerializationMethodType . Default ;
2121
2222 [ Header ( "Encryption" ) , SerializeField ] protected string key = string . Empty ;
2323 public string Key => key ;
24-
24+
2525 [ SerializeField ] protected string salt = string . Empty ;
2626 public string Salt => salt ;
27-
27+
2828 private Dictionary < SerializationMethodType , ISerializationMethod > _methods ;
2929
3030 private void OnEnable ( )
@@ -53,10 +53,10 @@ public static SaveLoadManager Create(string baseFolder, string defaultFolder, Se
5353 instance . key = key ;
5454 instance . salt = salt ;
5555 instance . saveMethod = saveMethod ;
56-
56+
5757 return instance ;
5858 }
59-
59+
6060 /// <summary>
6161 /// Save an object to disk
6262 /// </summary>
@@ -77,14 +77,15 @@ public void Save(object obj, string filename, string folder = null)
7777 /// Gets the list of save files that have been created
7878 /// </summary>
7979 /// <param name="folder">sub folder</param>
80+ /// <param name="extension">include only files with this extension</param>
8081 /// <returns>list of file names (excludes the path)</returns>
81- public string [ ] GetFiles ( string folder = null )
82+ public string [ ] GetFiles ( string folder = null , string extension = null )
8283 {
8384 if ( string . IsNullOrEmpty ( folder ) )
8485 {
8586 folder = defaultFolder ;
8687 }
87- return SaveLoadUtility . GetSavedFiles ( folder , baseFolder ) ;
88+ return SaveLoadUtility . GetSavedFiles ( folder , baseFolder , extension ) ;
8889 }
8990
9091 /// <summary>
@@ -119,7 +120,7 @@ public T Copy<T>(T obj)
119120 var saveLoadMethod = GetSaveLoadMethod ( saveMethod ) ;
120121 return ( T ) saveLoadMethod . Copy ( obj ) ;
121122 }
122-
123+
123124 /// <summary>
124125 /// Load an object from disk
125126 /// </summary>
@@ -162,7 +163,7 @@ public void DeleteSave(string filename, string folder = null)
162163 }
163164 SaveLoadUtility . DeleteSavedFile ( filename , folder , baseFolder ) ;
164165 }
165-
166+
166167 /// <summary>
167168 /// Save object to file and specify the method of save/load
168169 /// </summary>
@@ -217,7 +218,7 @@ public void SaveUnityObject(UnityEngine.Object unityObj, string filename, string
217218 {
218219 jsonData = JsonUtility . ToJson ( unityObj )
219220 } ;
220-
221+
221222 Save ( savedObj , filename , folder ) ;
222223 }
223224
@@ -233,12 +234,12 @@ public void SaveUnityObject(UnityEngine.Object unityObj, string filename, string
233234 public bool LoadUnityObjectOverwrite ( UnityEngine . Object objectToOverwrite , string filename , string folder = null )
234235 {
235236 var savedObj = Load < JsonSerializedUnityObject > ( filename , folder ) ;
236-
237+
237238 if ( savedObj == null || string . IsNullOrEmpty ( savedObj . jsonData ) )
238239 {
239240 return false ;
240241 }
241-
242+
242243 JsonUtility . FromJsonOverwrite ( savedObj . jsonData , objectToOverwrite ) ;
243244 return true ;
244245 }
@@ -253,7 +254,7 @@ public void CopyUnityObjectOverwrite(UnityEngine.Object toCopy, UnityEngine.Obje
253254 var jsonData = JsonUtility . ToJson ( toCopy ) ;
254255 JsonUtility . FromJsonOverwrite ( jsonData , toOverwrite ) ;
255256 }
256-
257+
257258 /// <summary>
258259 /// JsonSerializedUnityObject
259260 /// Wrapper for json data created when using Unity's JsonUtility to serialize an object derived from UnityEngine.Object
@@ -280,7 +281,7 @@ public void SetCustomSerializationMethod(ISerializationMethod customSerializatio
280281 }
281282 _methods [ SerializationMethodType . Custom ] = customSerializationMethod ;
282283 }
283-
284+
284285 private ISerializationMethod GetSaveLoadMethod ( SerializationMethodType methodType )
285286 {
286287 if ( _methods == null )
@@ -305,14 +306,14 @@ private ISerializationMethod GetSaveLoadMethod(SerializationMethodType methodTyp
305306 case SerializationMethodType . UnityJson :
306307 method = new SerializationMethodUnityJson ( ) ;
307308 break ;
308-
309+
309310 case SerializationMethodType . BinaryEncrypted :
310311 method = new SerializationMethodBinaryEncrypted ( key , salt ) ;
311312 break ;
312313 case SerializationMethodType . UnityJsonEncrypted :
313314 method = new SerializationMethodUnityJsonEncrypted ( key , salt ) ;
314315 break ;
315-
316+
316317#if JSON_DOT_NET
317318 case SerializationMethodType . JsonDotNet:
318319 method = new SerializationMethodJsonDotNet ( ) ;
@@ -321,19 +322,17 @@ private ISerializationMethod GetSaveLoadMethod(SerializationMethodType methodTyp
321322 method = new SerializationMethodJsonDotNetEncrypted ( key , salt ) ;
322323 break ;
323324#endif
324-
325+
325326 case SerializationMethodType . Custom :
326327 throw new MissingComponentException ( "SerializationMethodType is Custom but no custom ISerializationMethod was found." ) ;
327328 default :
328329 throw new ArgumentOutOfRangeException ( nameof ( methodType ) , methodType , "SaveLoadMethodType not supported" ) ;
329330 }
330331
331332 _methods [ methodType ] = method ;
332-
333+
333334 return method ;
334335 }
335-
336- }
337- }
338-
339336
337+ }
338+ }
0 commit comments