Unity自动化打包注意事项

问题描述

使用Unity手册上介绍的程序启动参数,在不打开Unity Editor界面的情况下自动执行C#代码,可以实现自动打包。如果是专门打包iOS包的话,一切OK。但是一旦在Android与iOS之间切换,就会发现iOS的PostProcessBuild标记的后处理代码没有执行,造成打包流程出错。

解决方案

出现该问题的原因是iOS平台特定代码通常是使用#if UNITY_IOS的宏定义包裹。如果项目之前是非iOS平台,使用命令行方式启动Unity直接运行打包方法,那么其中的iOS平台相关代码都是不存在的。

正确的做法是首先切换到构建目标平台,待相关Editor脚本都生效后,再执行构建操作。

同样的道理,在构建方法里调用Unity提供的切换平台方法是没有意义的。C#代码不可能执行到一半,重新编译并加载后还能从中断处继续执行。

对于命令行方式实现的自动打包方案来说,需要添加 -buildTarget <name> 参数。该参数的生效是比 -executeMethod <ClassName.MethodName> 更早一些。所以可以实现先切换到目录平台,所有脚本都正确后再执行给定的静态方法。

下面是一个命令行调用Unity的例子,以供参考:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -buildTarget iOS -batchmode -projectPath \"$PWD/unity/open3d\" -executeMethod Build.DoBuildIOS -quit -logFile

参考

Unity Manual 关于命令行方式启动Unity的介绍,Command line arguments,https://docs.unity3d.com/Manual/CommandLineArguments.html

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Windows10下安装Jenkins并安装Unity,实现Unity自动化打包 一、安装Jenkins 1. 下载Jenkins安装包 在Jenkins官网下载适合你系统的安装包,这里以Windows10为例。 https://jenkins.io/download/ 2. 安装Jenkins 打开下载的安装包,按照提示安装。 3. 启动Jenkins 安装完成后,启动Jenkins服务。默认访问地址为http://localhost:8080。 4. 安装插件 Jenkins需要安装一些插件才能正常使用,进入Jenkins后台管理页面,点击“插件管理”,选择“可选插件”,找到并安装“Unity3D Plugin”插件。 二、安装Unity 1. 下载Unity安装包 在Unity官网下载适合你系统的安装包,这里以Unity2019.3为例。 https://unity3d.com/get-unity/download/archive 2. 安装Unity 打开下载的安装包,按照提示安装。 3. 安装Android Build Support 如果你要打包Android应用,需要安装Android Build Support插件。在Unity安装目录下,找到“Unity Hub”文件夹,打开“Unity Hub.exe”,选择“安装”,找到并安装“Android Build Support”插件。 三、实现Unity自动化打包 1. 编写打包脚本 在Unity项目中,新建一个Editor文件夹,创建一个Editor脚本。这里以自动打包Android应用为例,脚本内容如下: ``` using UnityEngine; using UnityEditor; public class AutoBuild : MonoBehaviour { [MenuItem("Build/Android")] static void BuildAndroid() { string[] levels = new string[] { "Assets/Scenes/Main.unity" }; string outputPath = "Builds/Android/MyApp.apk"; BuildPipeline.BuildPlayer(levels, outputPath, BuildTarget.Android, BuildOptions.None); } } ``` 这个脚本定义了一个菜单项“Build/Android”,点击这个菜单项就会自动打包Android应用。 2. 配置Jenkins任务 进入Jenkins后台管理页面,点击“新建任务”,选择“构建一个自由风格的软件项目”。在“源码管理”中配置Unity项目的git仓库地址。在“构建触发器”中勾选“定时构建”,设置定时时间。在“构建环境”中勾选“在构建之前清理工作区”,以保证每次构建的环境干净。在“构建”中添加一个“执行Windows批处理命令”的构建步骤,命令为: ``` "C:\Program Files\Unity\Editor\Unity.exe" -batchmode -quit -projectPath "D:\UnityProjects\MyApp" -executeMethod AutoBuild.BuildAndroid ``` 这个命令会启动Unity,并执行AutoBuild脚本中的BuildAndroid方法,自动打包Android应用。 3. 执行Jenkins任务 保存Jenkins任务配置,等待定时触发或手动触发任务。Jenkins将自动从git仓库拉取最新代码,启动Unity并执行自动化打包脚本,最终生成Android应用程序包。 四、参考文献 Jenkins官网:https://jenkins.io/ Unity官网:https://unity.com/ Unity3D Plugin插件:https://plugins.jenkins.io/unity3d/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值