// 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);
                        }
                    }
                }
            }
        }
Beispiel #2
0
 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);
            }
        }
Beispiel #4
0
        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);
                    }
                }
            }
        }