57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using UnityEngine; | |||
|  | 
 | |||
|  | #if UNITY_IOS | |||
|  | using System.Runtime.InteropServices; | |||
|  | #endif | |||
|  | 
 | |||
|  | public static class UUIDTool | |||
|  | { | |||
|  |     public static string DeviceID | |||
|  |     { | |||
|  |         get | |||
|  |         { | |||
|  |             if (string.IsNullOrEmpty(sDeviceID)) | |||
|  |             { | |||
|  |                 sDeviceID = SystemInfo.deviceUniqueIdentifier; | |||
|  | 
 | |||
|  | #if UNITY_IOS && !UNITY_EDITOR | |||
|  |                 string tUUID = UUIDTool.GetUUID(); | |||
|  |                 if(!string.IsNullOrEmpty(tUUID)) | |||
|  |                 { | |||
|  |                     sDeviceID = tUUID; | |||
|  |                 } | |||
|  |                 UUIDTool.SetUUID(sDeviceID); | |||
|  | #endif | |||
|  |             } | |||
|  | 
 | |||
|  |             return sDeviceID; | |||
|  |         } | |||
|  |     } | |||
|  |     private static string sDeviceID = null; | |||
|  | 
 | |||
|  | #if UNITY_IOS | |||
|  |     private static void SetUUID(string pUUID) | |||
|  |     { | |||
|  |         mSetUUID(pUUID); | |||
|  |     } | |||
|  | 
 | |||
|  |     private static string GetUUID() | |||
|  |     { | |||
|  |         return mGetUUID(); | |||
|  |     } | |||
|  | 
 | |||
|  |     private static void DeleteUUID() | |||
|  |     { | |||
|  |         mDeleteUUID(); | |||
|  |     } | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void mSetUUID(string pUUID); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern string mGetUUID(); | |||
|  | 
 | |||
|  |     [DllImport("__Internal")] | |||
|  |     private static extern void mDeleteUUID(); | |||
|  | #endif | |||
|  | } |