// workaround for https://issuetracker.unity3d.com/issues/plugins-not-copied-to-the-standalone-plugin-folder-when-they-are-marked-to-be-included-in-build private static void CopyPluginsForStandaloneBuildIfRequired(BuildTarget buildTarget) { if (PlatformHelpers.IsStandaloneOSX(buildTarget)) { const string pluginBundle = "StreamAlpha.bundle"; foreach (var pluginImporter in PluginImporter.GetImporters(buildTarget)) { if (pluginImporter.assetPath.EndsWith(pluginBundle)) { var appDirectory = EditorUserBuildSettings.GetBuildLocation(buildTarget); var destination = Path.Combine(appDirectory, Path.Combine("Contents/Plugins/", pluginBundle)); var source = pluginImporter.assetPath; bool shouldCopy = !Directory.Exists(destination) || GetLastSourceWriteTimeUtc(source) > GetLastSourceWriteTimeUtc(destination); if (shouldCopy) { CopyDirectoryRecursive(source, destination); } } } } }
private static void PerformBuildTargetSwitch() { if (!EditorApplication.isUpdating) { if (EditorUserBuildSettings.activeBuildTarget != m_desiredBuildTarget) { PlatformHelpers.SwitchActiveBuildTarget(m_desiredBuildTarget); Debug.LogFormat("Current Settings not supported. Changed Build Target to: {0:G}", m_desiredBuildTarget); EditorApplication.update -= PerformBuildTargetSwitch; } } }
public static void PrepareForBuildTarget(BuildTarget target) { RuntimePlatform platform; if (PlatformHelpers.TryGetRuntimePlatformForBuildTarget(target, out platform)) { PrepareForPlatform(platform); } else { Debug.LogErrorFormat("Unsupported platform {0:G}", target); } }
public static void ChangeBuildTarget() { BuildTarget currentTarget = EditorUserBuildSettings.activeBuildTarget; BuildTarget newTarget; if (!PlatformHelpers.IsSupportedBuildTarget(currentTarget)) { if (PlatformHelpers.TryGetBuildTargetOverride(currentTarget, out newTarget)) { m_desiredBuildTarget = newTarget; EditorApplication.update += PerformBuildTargetSwitch; } } }
public static void CheckBuildTarget(BuildTarget target) { if (!PlatformHelpers.IsSupportedBuildTarget(target)) { BuildTarget buildTargetOverride; if (PlatformHelpers.TryGetBuildTargetOverride(target, out buildTargetOverride)) { string currentArch = PlatformHelpers.GetOverridableTargetArchitectureString(target); string supportedArch = "x86_64"; string message = "Your Build Architecture has been set to " + currentArch + ". This is currently not supported and builds made using this architecture will not run.\n\n" + "Do you wish to change to " + supportedArch + " (recommended)? "; if (EditorUtility.DisplayDialog("WRLD - Target Settings", message, "Change", "Skip")) { EditorUserBuildSettings.SwitchActiveBuildTarget(buildTargetOverride); } } } }