问题
- 从控制命令行运行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 时,一旦完成,则无需自动退出编辑器,因为该方法将在结束之前退出编辑器。
更多信息
想要了解更多信息,请参考下列文档: