-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPlayerPrefsExtension.cs
29 lines (26 loc) · 1.09 KB
/
PlayerPrefsExtension.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using Newtonsoft.Json;
namespace Cnoom.UnityTool.StorageUtils
{
public static class PlayerPrefsExtension
{
public static void SaveObject(this IPlayerPrefsUser storageUser, string key, object value, bool isSave = true, params JsonConverter[] converters)
{
TryGetPlayerPrefsStorage().SaveObject(storageUser.GetKey(key), value, isSave, converters);
}
public static T GetObject<T>(this IPlayerPrefsUser storageUser, string key, T defaultValue = default, params JsonConverter[] converters)
{
return TryGetPlayerPrefsStorage().LoadObject(storageUser.GetKey(key), defaultValue, converters);
}
private static PlayerPrefsStorage TryGetPlayerPrefsStorage()
{
if(IStorage.Current == null)
throw new NullReferenceException("IStorage.Current is null");
if(IStorage.Current is PlayerPrefsStorage storage)
{
return storage;
}
throw new NullReferenceException("IStorage.Current is not PlayerPrefsStorage");
}
}
}