检测是否已安装构建目标

时间:2017-03-10 10:46:10

标签: c# unity3d editor

我维护一个名为Build Automator的编辑器扩展,我想升级它,以便它会禁用用户没有安装的任何平台;我做了一些搜索文档,但无法找到任何东西。

我想知道是否有任何方法可以检测是否安装了模块,或者是否存在构建目标?

1 个答案:

答案 0 :(得分:0)

我认为没有公共API。但是当然你仍然可以通过一些反思到达那里。你是否应该去那里取决于你想要的东西有多可靠。

BuildPipeline具有以下静态方法

internal static extern bool IsBuildTargetSupported(BuildTarget target);

您可以按如下方式调用它:

MethodInfo buildTargetSupported = typeof(BuildPipeline).GetMethod("IsBuildTargetSupported", BindingFlags.Static | BindingFlags.NonPublic);
if(Convert.ToBoolean(buildTargetSupported.Invoke(null, new object[] { BuildTarget.PS4 })))
{
    Debug.Log("PS4 Supported");
}
if (Convert.ToBoolean(buildTargetSupported.Invoke(null, new object[] { BuildTarget.Android })))
{
    Debug.Log("Android Supported");
}
//etc

这不是很好,如果有一个我忽略的公共API,你绝对应该使用它。但在紧要关头可能会这样做。