コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Unity 2017.1 新機能「SwitchActiveBuildTargetAsync」

using UnityEditor;
using UnityEditor.Build;
using UnityEngine;

public class ExampleClass : IActiveBuildTargetChanged
{
    public int callbackOrder { get { return 0; } }

    [MenuItem( "Tools/Switch Platform" )]
    public static void SwitchPlatform()
    {
        EditorUserBuildSettings.SwitchActiveBuildTargetAsync
        ( 
         targetGroup : BuildTargetGroup.Standalone    , 
         target      : BuildTarget.StandaloneWindows 
        );
    }

    public void OnActiveBuildTargetChanged
    ( 
        BuildTarget previousTarget  , 
        BuildTarget newTarget
    )
    {
        Debug.LogFormat( "{0} -> {1}", previousTarget, newTarget );
    }
}

Unity 2017.1から EditorUserBuildSettings.SwitchActiveBuildTargetAsync が追加されました
非同期で Switch Platform できるみたいです

Switch Platform が完了したかどうかは
IActiveBuildTargetChanged インターフェイスの
OnActiveBuildTargetChanged を実装することで検知できます

参考サイト様