关注

为什么一个失败的BuildPipeline.BuildPlayer在控制命令行中返回了错误的代码?

问题

  • 从控制命令行运行Unity时,使用-executeMethod 和BuildPipeline.BuildPlayer 失败,并且接收到退出代码0(成功)。

原因

当使用BuildPipeline.BuildPlayer时构建失败,Unity将在BuildPipeline.BuildPlayer完成后继续处理该方法。一旦运行整个方法,Unity将会停止返回成功的错误代码。

如果在打开项目时有任何异常或崩溃,将会返回失败的错误代码。

解决方案

BuildPipeline.BuildPlayer返回一个字符串 – 如果这个字符串是空的,构建成功。下面的代码展现了读取错误并退出Unity的例子,当成功构建返回0值,反之返回1值。

 

string error = BuildPipeline.BuildPlayer( levels, "iOS ", BuildTarget.iOS, BuildOptions.None );
if( string.IsNullOrEmpty( error ) )
    EditorApplication.Exit( 0 );
else
    EditorApplication.Exit( 1 );

或者,如果需要一个特定的返回代码(不是1),则抛出一个异常(例如throw new System.Exception( "error message" );),Unity编辑器将会退出并返回代码1.

注意,当从脚本访问EditorApplication.Exit 时,一旦完成,则无需自动退出编辑器,因为该方法将在结束之前退出编辑器。

更多信息

想要了解更多信息,请参考下列文档:

 

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
还有其它问题?提交请求

0 评论

登录写评论。