Unity强制进行编译,及编译后的回调处理

引言

在开发过程中有时会需要强制进行编译,并且在编译后要进行逻辑处理,则需要做以下操作。比如在命令行打包时,使用命令参数-quit 来回开关Unity很耗时,即可以调用一次Unity的接口。假如项目中有Lua编译环节,因为Clear Lua和Generate Lua会有c#的变动,会导致代码需要编译,则可以在Clear LuaGenerate Lua两个步骤下调用API进行强制编译,然后再回调里再进行Clear Lua或Generate Lua之后的操作。

Unity强制进行编译的API :

UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();

编译后的回调处理(回调主要是以下这个标签及方法,步骤从1~3):

[UnityEditor.Callbacks.DidReloadScripts]
private static void OnScriptsReloaded()
{
    if (目前在Clear Lua)
    {
        2. 进行Generate Lua...
        // 强制编译
        UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
    }
    else if (目前在Generate Lua)
    {
        3. 进行Generate Lua之后的操作...
    }
}
// 命令行调用的c#方法
static void DoShellBuildPatch()
{
    1. 进行Clear Lua
    // 强制编译
    UnityEditor.Compilation.CompilationPipeline.RequestScriptCompilation();
{

 因为这样就开关1次Unity,即可完成打包流程,也不需要在打包脚本里分别调用Clear Lua和Generate Lua的接口,避免多次开关Unity浪费时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值