208 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			208 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using UnityEditor; | |||
|  | using UnityEngine; | |||
|  | using System; | |||
|  | using System.IO; | |||
|  | using System.Text; | |||
|  | 
 | |||
|  | namespace Touka | |||
|  | { | |||
|  |     public class ToukaEditor | |||
|  |     { | |||
|  |         static string assetPath = Application.dataPath; | |||
|  |         static string maxPath = assetPath + "/Plugins/ToukaGames/ADSSDK/MAXSDKs"; | |||
|  |         static string toponPath = assetPath + "/Plugins/ToukaGames/ADSSDK/ToponSDK"; | |||
|  |         static string maxPathX = assetPath + "/Plugins/ToukaGames/ADSSDK/MAXSDKs~"; | |||
|  |         static string toponPathX = assetPath + "/Plugins/ToukaGames/ADSSDK/ToponSDK~"; | |||
|  | 
 | |||
|  |         [MenuItem("ToukaGames/ClearPlayerPrefs", priority = 1)] | |||
|  |         public static void ClearPlayerPrefs() | |||
|  |         { | |||
|  |             PlayerPrefs.DeleteAll(); | |||
|  |             PlayerPrefs.Save(); | |||
|  |         } | |||
|  | 
 | |||
|  |         [MenuItem("ToukaGames/Settings For IOS CN", priority=1001)] | |||
|  |         public static void SetIOSCNTOPONSeting() | |||
|  |         { | |||
|  | #if UNITY_IOS | |||
|  |             SetAPPSetting(AppChannel.AppStore_CN); | |||
|  | #endif | |||
|  |         } | |||
|  | 
 | |||
|  |         [MenuItem("ToukaGames/Settings For Android CN", priority = 1002)] | |||
|  |         public static void SetAndroidCNSeting() | |||
|  |         { | |||
|  | #if UNITY_ANDROID | |||
|  |             SetAPPSetting(AppChannel.GW002); | |||
|  | #endif | |||
|  |         } | |||
|  | 
 | |||
|  |         [MenuItem("ToukaGames/Settings For IOS GB", priority = 10001)] | |||
|  |         public static void SetIOSUSSeting() | |||
|  |         { | |||
|  | #if UNITY_IOS | |||
|  |             SetAPPSetting(AppChannel.AppStore_GB); | |||
|  | #endif | |||
|  |         } | |||
|  | 
 | |||
|  |         [MenuItem("ToukaGames/Settings For Android GB", priority = 10002)] | |||
|  |         public static void SetAndroidGPSeting() | |||
|  |         { | |||
|  | #if UNITY_ANDROID | |||
|  | 
 | |||
|  |             SetAPPSetting(AppChannel.GooglePlay); | |||
|  | #endif | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  | 
 | |||
|  |         #region inner | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// Set APP Setting | |||
|  |         /// </summary> | |||
|  |         /// <param name="_appChannelSymbol"></param> | |||
|  |         public static void SetAPPSetting(AppChannel _appChannel) | |||
|  |         { | |||
|  |             Debug.Log("SetAPPSetting _appChannel : " + _appChannel); | |||
|  | #if UNITY_IOS | |||
|  |             // bundle id | |||
|  |             if(_appChannel == AppChannel.AppStore_CN || _appChannel == AppChannel.AppStore_GB) | |||
|  |             { | |||
|  |                 Debug.Log("SetAPPSetting 01 -----  _AppChannelSymbol : " + _appChannel); | |||
|  |                 PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.iOS, TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_BunldId, _appChannel)); | |||
|  |             } | |||
|  | #endif | |||
|  | 
 | |||
|  | #if UNITY_ANDROID | |||
|  |             Debug.Log("SetAPPSetting 02 android -----  _AppChannelSymbol : " + _appChannel); | |||
|  |             PlayerSettings.SetApplicationIdentifier(BuildTargetGroup.Android, TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_BunldId, _appChannel)); | |||
|  | #endif | |||
|  | 
 | |||
|  |             // game name | |||
|  |             PlayerSettings.productName = TKGLoadConfig.GetConfigByKey(ConfigKeys.KEY_AppName, _appChannel); | |||
|  |             Debug.Log("productName : " + PlayerSettings.productName); | |||
|  | 
 | |||
|  |             // ScriptingDefineSymbols & ads sdks | |||
|  |             ChangeDefineSymbols(_appChannel); | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// change define symbols | |||
|  |         /// </summary> | |||
|  |         /// <param name="_isCN"></param> | |||
|  |         private static void ChangeDefineSymbols(AppChannel _appChannel) | |||
|  |         { | |||
|  |             BuildTargetGroup buildTargetGroup = EditorUserBuildSettings.selectedBuildTargetGroup; | |||
|  |             string symbolsStr = PlayerSettings.GetScriptingDefineSymbolsForGroup(buildTargetGroup); | |||
|  |             Debug.Log("symbolsStr : " + symbolsStr); | |||
|  | 
 | |||
|  |             string[] symbols = symbolsStr.Split(';'); | |||
|  |             HashSet<string> symbolSet = new HashSet<string>(); | |||
|  |             for (int i = 0; i < symbols.Length; ++i) | |||
|  |             { | |||
|  |                 if (!symbolSet.Contains(symbols[i])) | |||
|  |                 { | |||
|  |                     symbolSet.Add(symbols[i]); | |||
|  |                 } | |||
|  |             } | |||
|  | 
 | |||
|  |             // remove all | |||
|  |             if (symbolSet.Contains(AppChannel.AppStore_CN.ToString())) | |||
|  |             { | |||
|  |                 symbolSet.Remove(AppChannel.AppStore_CN.ToString()); | |||
|  |             } | |||
|  | 
 | |||
|  |             if (symbolSet.Contains(AppChannel.AppStore_GB.ToString())) | |||
|  |             { | |||
|  |                 symbolSet.Remove(AppChannel.AppStore_GB.ToString()); | |||
|  |             } | |||
|  | 
 | |||
|  |             if (symbolSet.Contains(AppChannel.GooglePlay.ToString())) | |||
|  |             { | |||
|  |                 symbolSet.Remove(AppChannel.GooglePlay.ToString()); | |||
|  |             } | |||
|  | 
 | |||
|  |             if (symbolSet.Contains(AppChannel.GW002.ToString())) | |||
|  |             { | |||
|  |                 symbolSet.Remove(AppChannel.GW002.ToString()); | |||
|  |             } | |||
|  | 
 | |||
|  |             // set new | |||
|  |             if (_appChannel == AppChannel.AppStore_GB || _appChannel == AppChannel.GooglePlay) | |||
|  |             { | |||
|  |                 symbolSet.Add(_appChannel.ToString()); | |||
|  |             } | |||
|  |              | |||
|  | 
 | |||
|  |              | |||
|  |             // save data | |||
|  |             StringBuilder sb = new StringBuilder(); | |||
|  |             foreach (string s in symbolSet) | |||
|  |             { | |||
|  |                 sb.Append(s + ";"); | |||
|  |             } | |||
|  |             PlayerSettings.SetScriptingDefineSymbolsForGroup(buildTargetGroup, sb.ToString()); | |||
|  |             AssetDatabase.SaveAssets(); | |||
|  |             AssetDatabase.Refresh(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// SeIOSSDKDir | |||
|  |         /// </summary> | |||
|  |         /// <param name="_AppChannelSymbol"></param> | |||
|  |         private static void SeIOSSDKDir(AppChannel _AppChannelSymbol) | |||
|  |         { | |||
|  |             if (_AppChannelSymbol == AppChannel.AppStore_CN)      // iOS CN | |||
|  |             { | |||
|  |                 if (Directory.Exists(maxPath)) | |||
|  |                 { | |||
|  |                     ChangePathName(maxPath, maxPathX); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 if (!Directory.Exists(toponPath)) | |||
|  |                 { | |||
|  |                     if (Directory.Exists(toponPathX)) | |||
|  |                     { | |||
|  |                         ChangePathName(toponPathX, toponPath); | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |             else if (_AppChannelSymbol == AppChannel.AppStore_GB)        // iOS GB | |||
|  |             { | |||
|  |                 if (Directory.Exists(toponPath)) | |||
|  |                 { | |||
|  |                     ChangePathName(toponPath, toponPathX); | |||
|  |                 } | |||
|  | 
 | |||
|  |                 if (!Directory.Exists(maxPath)) | |||
|  |                 { | |||
|  |                     if (Directory.Exists(maxPathX)) | |||
|  |                     { | |||
|  |                         ChangePathName(maxPathX, maxPath); | |||
|  |                     } | |||
|  |                 } | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 TKGDebugger.LogDebug("other channel"); | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// change path name | |||
|  |         /// </summary> | |||
|  |         /// <param name="_oldPath"></param> | |||
|  |         /// <param name="_newPath"></param> | |||
|  |         private static void ChangePathName(string _oldPath, string _newPath) | |||
|  |         { | |||
|  |             System.IO.File.Move(_oldPath, _newPath); | |||
|  |         } | |||
|  | 
 | |||
|  | #endregion | |||
|  |     } | |||
|  | } |