| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- namespace SFramework
- {
- public class SPlatformInfo
- {
- private static string _unityEditorEditorUserBuildSettingsActiveBuildTarget;
- /// <summary>
- /// UnityEditor.EditorUserBuildSettings.activeBuildTarget, Can Run in any platform~
- /// </summary>
- public static string UnityEditor_EditorUserBuildSettings_activeBuildTarget
- {
- get
- {
- if (Application.isPlaying && !string.IsNullOrEmpty(_unityEditorEditorUserBuildSettingsActiveBuildTarget))
- {
- return _unityEditorEditorUserBuildSettingsActiveBuildTarget;
- }
- var assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
- foreach (var a in assemblies)
- {
- if (a.GetName().Name == "UnityEditor")
- {
- System.Type lockType = a.GetType("UnityEditor.EditorUserBuildSettings");
- //var retObj = lockType.GetMethod(staticMethodName,
- // System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public)
- // .Invoke(null, args);
- //return retObj;
- var p = lockType.GetProperty("activeBuildTarget");
- var em = p.GetGetMethod().Invoke(null, new object[] { }).ToString();
- _unityEditorEditorUserBuildSettingsActiveBuildTarget = em;
- return em;
- }
- }
- return null;
- }
- }
- /// <summary>
- /// Different platform's assetBundles is incompatible.
- /// CosmosEngine put different platform's assetBundles in different folder.
- /// Here, get Platform name that represent the AssetBundles Folder.
- /// </summary>
- /// <returns>Platform folder Name</returns>
- public static string GetBuildPlatformName()
- {
- string buildPlatformName = "Windows"; // default
- if (Application.isEditor)
- {
- var buildTarget = UnityEditor_EditorUserBuildSettings_activeBuildTarget;
- //UnityEditor.EditorUserBuildSettings.activeBuildTarget;
- switch (buildTarget)
- {
- case "StandaloneOSX":
- case "StandaloneOSXIntel":
- case "StandaloneOSXIntel64":
- case "StandaloneOSXUniversal":
- buildPlatformName = "MacOS";
- break;
- case "StandaloneWindows": // UnityEditor.BuildTarget.StandaloneWindows:
- case "StandaloneWindows64": // UnityEditor.BuildTarget.StandaloneWindows64:
- buildPlatformName = "Windows";
- break;
- case "Android": // UnityEditor.BuildTarget.Android:
- buildPlatformName = "Android";
- break;
- case "iPhone": // UnityEditor.BuildTarget.iPhone:
- case "iOS":
- buildPlatformName = "iOS";
- break;
- default:
- Debug.Assert(false);
- break;
- }
- }
- else
- {
- switch (Application.platform)
- {
- case RuntimePlatform.OSXPlayer:
- buildPlatformName = "MacOS";
- break;
- case RuntimePlatform.Android:
- buildPlatformName = "Android";
- break;
- case RuntimePlatform.IPhonePlayer:
- buildPlatformName = "iOS";
- break;
- case RuntimePlatform.WindowsPlayer:
- #if !UNITY_5_4_OR_NEWER
- case RuntimePlatform.WindowsWebPlayer:
- #endif
- buildPlatformName = "Windows";
- break;
- default:
- Debug.Assert(false);
- break;
- }
- }
- return buildPlatformName;
- }
-
- }
- }
|