65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using UnityEngine; | |||
|  | 
 | |||
|  | public class StorageBase<T> where T : StorageBase<T>,new () | |||
|  | { | |||
|  |     private static T mInstance; | |||
|  |     public static T Instance | |||
|  |     { | |||
|  |         get | |||
|  |         { | |||
|  |             if (mInstance == null) | |||
|  |             { | |||
|  |                 Load(); | |||
|  |             } | |||
|  | 
 | |||
|  |             return mInstance; | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     protected virtual void InitFirstDefault() | |||
|  |     { | |||
|  | 
 | |||
|  |     } | |||
|  | 
 | |||
|  |     protected virtual void InitBuildDefault() | |||
|  |     { | |||
|  | 
 | |||
|  |     } | |||
|  | 
 | |||
|  |     public static void Load() | |||
|  |     { | |||
|  |         if (ES3.FileExists() && ES3.KeyExists(typeof(T).Name)) | |||
|  |         { | |||
|  |             mInstance = ES3.Load<T>(typeof(T).Name); | |||
|  |         } | |||
|  |         else | |||
|  |         { | |||
|  |             mInstance = new T(); | |||
|  | 
 | |||
|  |             string tFirstDefaultKey = "FirstDefault_" + typeof(T).Name; | |||
|  | 
 | |||
|  |             if (PlayerPrefs.GetInt(tFirstDefaultKey, 0) != 1) | |||
|  |             { | |||
|  |                 PlayerPrefs.SetInt(tFirstDefaultKey, 1); | |||
|  |                 mInstance.InitFirstDefault(); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         string tBuildDefaultKey = "BuildDefault_" + typeof(T).Name + Application.buildGUID; | |||
|  | 
 | |||
|  |         if (PlayerPrefs.GetInt(tBuildDefaultKey, 0) != 1) | |||
|  |         { | |||
|  |             PlayerPrefs.SetInt(tBuildDefaultKey, 1); | |||
|  |             mInstance.InitBuildDefault(); | |||
|  |         } | |||
|  | 
 | |||
|  |         Save(); | |||
|  |     } | |||
|  | 
 | |||
|  |     public static void Save() | |||
|  |     { | |||
|  |         ES3.Save<T>(typeof(T).Name, mInstance); | |||
|  |     } | |||
|  | } |