在正式开始设置之前,应先将发布平台改为Android:
File-->Build Settings-->Platform下选中Android,点击右下角Switch Platform(若无该选项,是因为没有安装Android开发组件,应在Unity Hub中进行安装)
Build Settings
Texture Compression(纹理压缩格式):Android一般选择ETC2(老设备选ETC);
ETC2 fallback(ETC2失败备选):一般选择32-bit内存占用相对大;
Export Project:将项目导出而非发布为apk,可通过Android Studio打开进行二次开发;
Symlink Sources:勾选Export Project时可选,若导出项目后进行二次开发建议勾选,当在AS中修改脚本文件时,Unity端同步修改;
Create symbols.zip:调试应用程序时使用。Debugging可包含完整的调试信息;
Run Device:若连接了外部设备,可选择该设备并点击Build And Run直接安装到设备上;
Build to Device:若满足上述条件,更改项目后,直接点击Patch即可重新部署;
Development Build:开发模式,附加性能分析器到程序上;
Autoconnect Profiler:将Unity的分析器连接到应用程序上;
Deep Profiling:深度剖析应用程序的函数调用,返回详细数据;
Script Debugging:程序在运行时等待调试器的调试。Wait For Managed Debugger程序在运行代码前等待调试器连接;
Compression Method:Default为.zip格式,压缩效果好,解压速度慢;LZ4快速压缩格式,只解压需要的文件;LZ4HC压缩时间较慢,使用时比LZ4效果好;
Player Settings参数
Icon(各设备上使用的图标)
Adaptive(Android8.0及以上);
Round(Android7.1及以上);
Legacy icons(Android7.1以下);
Resolution and Presentation(演示和分辨率设置)
Fullscreen Mode:设置全屏或窗口模式;
Hide Navigation Bar:是否隐藏屏幕顶部导航栏;
Render outside safe area:是否使用所有可用屏幕区域进行渲染(若不勾选,刘海处会有黑边);
Optimized frame Pacing:启用后会自动调整帧率,提升用户体验;
Resolution Scaling:分辨率缩放模式。Disable自动匹配设备屏幕;
Supported Aspect Ratio:支持的纵横比;
Orientation:屏幕方向。Portrait:竖屏;Portrait Upside Down:竖屏倒置;Landscape Right:右横屏;Landscape Left:左横屏;Auto Rotation:自动旋转;
Splash Image(启动图像)
软件启动时显示的动画,免费版强制显示Unity图标,可自定义图标显示。比较容易使用,此处不展开说明。
Other Settings(其他设置)
Rendering(渲染设置)
Color Space色彩空间:Gamma(人眼光照的线性效果,显示为曝光较高),适用于所有平台和较老的设备;Linear(实际光照的线性效果);
Auto Graphics API自动图形接口:自动选择图形API接口,默认Vulkan;
Color Gamut色域:根据目标设备支持选择;
Multithreaded Rendering多线程渲染:将图形API调用从主线程移到单独线程以提高性能;
Static Batching静态批处理:将静态物体合批处理,提升性能;
Dynamic Batching动态批处理:当使用SRP时不起作用。使用FairyGUI时需开启;
Compute Skinning计算蒙皮:启用GPU计算蒙皮,从而释放CPU资源;
Graphics Jobs(Experimental)图形作业:将渲染循环的图形任务移到其他工作线程,减少主线程花费的时间;
Texture Compression Format纹理压缩格式:Build Settings中选择Use Player Settings时启用;
Normal Map Encoding法线地图编码:DXT5nm样式的法线贴图质量更高,但解码成本高;
Lightmap Encoding光照贴图编码;
Lightmap Streaming光照贴图流:对光照贴图使用Mipmap流式处理(适用于视角有远近变化的情况,拉远时会使用质量较低的Mipmap);
Identification(身份证明)
Override Default Package Name是否覆盖默认包名称:Package Name软件包名,用于在设备和安卓商店中的唯一标识(com.公司名.产品名);
Version版本号;
Bundle Version Code内部版本号:不会显示给用户;
Minimum API Level最低API级别;
Target API Level目标API级别;
Configuration(配置)
Scripting Backend脚本后端:Mono将C#编译为.Net公共中间语言CIL,并使用公共语言运行时执行中间语言;IL2CPP将C#编译为CIL,再转换为C++,再将C++编译为本机代码;
Api Compatibility Level(API兼容级别):.Net Framework包含.Net Standard 2.1的所有内容以及更多API的支持,但是生成的包体较大。对于某些高级功能的使用,无更好的替代方案情况下,可尝试使用;
C++ Compiler Configuration(C++编译器配置):开启IL2CPP编译时可选。Debug:关闭所有编译优化,代码生成速度快,但运行速度慢,适用于调试;Release:对代码进行优化,编译时间长,运行会更快,二进制文件更小;Master:实现所有可能的优化,发布时间最长;
Use incremental GC使用增量GC:将GC分散到多个帧上执行,可降低一帧中GC造成的卡顿;
Assembly Version Validation程序集版本验证:Mono是否验证强名称程序集(对程序集强命名,以创建唯一标识)中的类型;
Mute Other Audio Sources:程序运行时,将系统后台其他应用的音频静音;
Target Architectures目标体系结构:允许程序运行的CPU。ARMv7(32位微处理器),ARM64(64位微处理器),x86(32位Chrome OS系统),x86-64(64位Chrome OS系统)。Mono模式仅可选ARMv7,选择的目标体系越多,程序在各平台运行效果越好,但包体越大;
Split APKs by target architecture:仅面向Google Play。当勾选多个目标CPU体系时,将拆分多个apk对应不同设备,用户下载时会自动甄别对应apk进行安装,减少包体大小;
Target Devices:目标设备;
Install Location安装位置:Auto系统自动选择;Prefer External:首选外部磁盘;Force Internal:强制安装到设备内部磁盘;
Internet Access互联网接入:是否始终将网络权限加入权限清单;
Write Permission写入权限:Internal仅授予对内部储存的写入权限;External授予对外部储存的写入权限;
Filter Touches When Obscured:当程序被其他窗口遮挡时,不响应触摸事件;
Active Input Handling活动输入处理:选择输入系统;
Script Compilation(脚本编译)
Script Define Symbols脚本定义符号:在此添加自定义编译标志;
Suppress Common Warnings:禁用CS0169(未使用的私有变量)与CS0649(未分配值的未初始化的私有或内部字段声明)警告;
Allow ‘unsafe’ Code:启用’不安全’代码(指针);
Optimization(优化)
Prebake Collision Meshes:在构建时将碰撞数据添加到网格,以空间换时间;
Keep Loaded Shaders Alive保持加载的着色器活动状态:由于着色器加载时消耗性能,此选项不允许卸载着色器,以空间换时间;
Preloaded Assets预载资源:在启动程序时预加载的资源;
Strip Engine Code剥离引擎代码:在IL2CPP模式下,能删除Unity引擎中没有使用的代码,显著减少包体大小;
Managed Stripping Level管理剥离等级:用以减少包体大小。Disabled(不剥离,仅Mono下可选),Minimal(仅删除Unity引擎未使用的.Net类库),Low(开发者的代码有可能被剥离),Medium(剥离程度高于Low),High(最大限度剥离代码,可通过link.xml或添加[Preserve]特性手动拒绝剥离);
Vertex Compression顶点压缩:压缩网格数据大小,提高CPU性能;
Optimize Mesh Data优化网格数据:删除未使用的顶点属性以减少包体大小和运存占用。但开启后不能更改材质或着色器相关设置;
Texture MipMap Stripping贴图纹理剥离:根据发布平台质量设置剥离未使用的MipMap贴图;
Stack Trace(堆栈跟踪)
Log Type日志记录设置:None(不记录),ScriptOnly(仅运行脚本时记录),Full(一直记录);Error(错误),Assert(断言),Warning(警告),Log(打印日志),Exception(异常);
Publishing Settings(发布设置)
Keystore Manager密钥(库)管理器:创建及加载密钥(库);
Project Keystore:密钥(库)选择;
Build(构建):Custom Main Manifest自定义主清单文件:用以决定权限和功能设置的xml文件;
Minify(代码混淆与缩小相关):R8(使用R8混淆),Release(发布构建中缩小程序代码),Debug(调试构建中缩小程序代码);
Split Application Binary拆分应用程序二进制文件:将安装包分成主包(APK)与扩展包(OBB),主要解决Google Play安装包大小限制100MB的问题。