Unity一般打包流程

这篇具有很好参考价值的文章主要介绍了Unity一般打包流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Unity一般打包流程

通常打包流程主要是通过 Building setting来选择需要打包的场景后出包到指定文件夹位置,也可以采用 [MenuItem("MyMenu/Do Something")]中使用static函数来选择打包路径和打包方式——需要将该脚本放置在 Editor文件夹下

[MenuItem("Test/BuildAndroid")] 
public static void BuildAndroid() {    
    string path = Path.GetFullPath("D:\\Packages") + "/Backbag" + ".apk";    			
    BuildPipeline.BuildPlayer(GetBuildScence(), path, BuildTarget.Android, BuildOptions.None); 
}

命令行控制

  1. Launching Unity
  2. 首先我们需要在Unity.exe所在目录下执行
  3. 选择对应Option

命令语句解释

命令语句 解释
-batchmode 以批处理模式运行 Unity。在批处理模式下,Unity 无需人为操作即可运行命令行参数。它还抑制了部分弹出窗口(例如“保存场景”窗口);但是,Unity 编辑器本身会照常打开。使用命令行参数时,您应该始终以批处理模式运行 Unity,因为它允许自动化不间断地运行
-quit 其他命令执行完毕后将退出Unity编辑器。但会导致错误消息被隐藏(显示在Editor.log文件)
-executeMethod <ClassName.MethodName> Unity 打开项目后立即执行静态方法,并在可选的资产服务器更新完成后执行。执行方法所在脚本必须在Editor文件中而且是static的。要从命令行进程返回错误,要么抛出异常导致 Unity 退出并返回代码 1,要么调用 EditorApplication.Exit 并返回非零代码

此外Unity Standalone Player平台中也能执行一些参数(官方文档中指Mac、Windows和Linux)

要在从命令行以批处理模式启动输入 PATH_TO_STANDALONE_BUILD -projectPath PROJECT_PATH -batchMode

比如 C:\projects\myproject\builds\myproject.exe -batchMode

命令语句 解释
-batchmode 在"headless"模式下运行游戏。游戏将不显示任何内容,或接受用户输入。主要作用于网络游戏的服务器
-single-instance (Linux and Windows only) 同一时候只允许一个游戏实例运行。如果另一个实例已在运行,然后再次通过 -single-instance启动它的话会调节到现有的这个实例
-force-(…) 强制性的使用规定的渲染方式(DirectX 、Metal、OpenGL等 )
-screen-(…) 重新规定屏幕的大小或者是出现方式(弹窗或全屏)

Player Setting——PC

Player Settings提供了各种选项来帮助你完成最终游戏的出包,虽然说有很多不同的平台,但是大体上的设置会分为以下几个部分

Icon

图标,在桌面上显示的默认图标

Resolution and Presentation

分辨率和启动前窗口设置,包括了支持的分辨率比例和是否默认全屏启动等选项;

Resolution

Unity一般打包流程

  • Fullscreen Mode : 选择默认窗口模式
  • Default Is Native Resolution : 是游戏以默认的分辨率启动,取消勾选后可以强制游戏的分辨率。但是有一点,如果你的游戏已经打包启动过了,那下次再打包强制分辨率就没有意义了,因为Windows会将该应用最后的分辨率记录到注册表中。此时有三种解决方案:
  • 1.改变应用的名称或公司;
  • 2.在代码中直接控制分辨率;
  • 3.使用Unity自带的启动前分辨率设置小窗口。
  • Mac Retina Support:可以使游戏在Mac高DPI的屏幕上显示的更加清晰,但是可能会占用更多的资源;
  • Run in background:在游戏失去焦点时仍旧继续运行不会暂停,联网游戏肯定要勾选;

Standalone Player Options

Unity一般打包流程

此部分允许指定用户如何自定义屏幕。 例如可以在此处确定用户是否可以调整屏幕大小以及可以并发运行多少个实例。

  • Capture Single Screen: 启用此选项可确保全屏模式下的独立游戏不会使多显示器设置中的辅助显示器变暗。
  • Use Player Log: 将所有Debug.Log的信息输入到一个log文件中,默认勾选
  • Resizable Window: 允许玩家可以重新调整游戏窗口的大小;
  • Visible in Background: 即使在后台任然能正常显示
  • Force Single Instance : 一台主机只能由一个运行实例
  • Supported Aspect Ratios: 支持的纵横比

Splash Image

初始图象,设置允许为独立平台指定启动图像

Unity一般打包流程

Other Setting

Rendering

Unity一般打包流程

  • **Color Space:**颜色空间,很重要的选项,手机上只能选择Gamma,而一般3A大作都是Linear,Linear显示效果更加真实
  • Auto Graphics API for Windows/ Mac/ Linux: 自动选择最佳的图形API,如果不勾选,可以自行添加支持的图形API
  • Static Batching: 静态批处理。——将静态(非移动)游戏对象组合成大网格,并以更快的方式渲染它们
  • Dynamic Batching:动态批处理,自动化Unity进程,一次性批量化渲染多个网络以优化图形性能,该技术转换 CPU 上的所有 GameObject 顶点并将许多相似的顶点组合在一起。 (当可编程渲染管线处于活动状态时,动态批处理没有效果)
  • GPU Skinning / Compute Skinning : 使用GPU处理骨骼与皮肤联系的过程,释放CPU资源
  • Graphics Jobs : 可以使游戏将一些渲染任务交给其他CPU核心进行处理,增加游戏的处理效率
  • Frame Timing Stats: 帧时序状态。启用此属性以收集 CPU 和 GPU 帧时间统计信息。 将其与动态分辨率相机设置一起使用以确定您的应用程序是 CPU 还是 GPU 受限。

Configuration(配置)

Unity一般打包流程

  • Scripting Backend: 选择项目中编译和执行 C# 代码的方式。Unity 根据目标平台支持三种不同的脚本后端:Mono、.NET 和 IL2CPP。 通用 Windows 平台仅支持两种:.NET 和 IL2CPP。
    • Mono: 将 C# 代码编译成 .NET 通用中间语言 (CIL) 并使用通用语言运行时执行该 CIL
    • IL2CPP: 将 C# 代码编译为 CIL,将 CIL 转换为 C++,然后将 C++ 编译为本机代码,在运行时直接执行。
  • API Compatibility Level: 选择在项目中使用的 .NET API。 此设置会影响第三方库的兼容性。
  • Use incremental GC:使用增量垃圾收集器,它将垃圾收集分布在多个帧上,以减少与 gc 相关的帧持续时间峰值。

Script Compilation

Unity一般打包流程

  • Allow ‘unsafe’ Code: 启用对在预定义程序集中编译“不安全”C# 代码的支持(例如,Assembly-CSharp.dll)。
  • Use Deterministic Compilation: 禁用此设置以防止使用 -deterministic C# 标志进行编译。 启用此设置后,编译后的程序集在每次编译时都是逐字节相同的。

以及一部分涉及到Roslyn Analyzers的选项,它可以静态地分析代码,并在代码中检测到潜在的错误、漏洞和优化机会

Scripting Define Symbols

脚本编译时的标志设置,能够根据定义在编译阶段包含或者剔除一些代码,示例代码:

#if UNITY_STANDALONE_WIN

  Debug.Log("Standalone Windows");

#endif

Platform scripting symbols:(平台标识)

定义 含义
UNITY_EDITOR 用于从游戏脚本调用Editor下的符号
UNITY_EDITOR_XXX 在XXX平台上的Editor时编译/执行代码
UNITY_STANDALONE 在任意独立平台(Mac OS X, Windows or Linux)上的应用中编译/执行的代码
UNITY_STANDALONE_XXX 在XXX平台上的应用中编译/执行的代码
UNITY_XXX 在XXX平台(除了独立平台外)上的编译/执行的代码

Editor version Scripting symbols:(引擎版本标识)

可选择unity版本号,可具体到X_Y_Z任意版本

UNITY_2019 Unity2019版本,包括2019.Y.Z等所有版本
UNITY_2019_4 Unity2019.4版本,包括2019.4.Z等所有版本
UNITY_2019_4_14 Unity2019.4.14版本

其余标识

定义 含义
CSHARP_7_3_OR_NEWER 支持 C# 7.3 及以上版本
ENABLE_MONO 编译方式为Mono.
ENABLE_IL2CPP S编译方式为IL2CPP .
NET_X_Y 在Mono和IL2CPP上针对Net对应版本API兼容性生成脚本
UNITY_SERVER 在Build Setting勾选Server Build选项

Optimization (优化)

Unity一般打包流程

  • Prebake Collision Meshes:只在build游戏时添加碰撞盒;
  • Keep Loaded Shaders Alive:保证Shader不会被卸载;
  • Preloader Assets:预先读取的Assets列表;
  • Managed Stripping Level: 决定Unity剥离未使用的托管代码的程度。这会使生成的可执行文件变小,但可能导致错误移除实际上使用的代码
  • Vertex Compression: 顶点压缩,选择模型会压缩的数据,比如可以选择everything,然后去掉positions和lightmap UVs。当然每个模型在导入时,该参数可以设置独立,会覆盖掉该选项
  • Optimize Mesh Data: 优化Mesh数据,勾选该选项会移除材质所不需要的Mesh数据,例如tangents、normals、colors、UV。

Logging

Unity一般打包流程

可以选择在运行脚本(ScriptOnly)、任何时候(Full)或者是从不(None)的时间选择记录类型

Player Setting——Android

大多数比较类似,只介绍重要的差异部分

Resolution and Presentation

Orientation

方向, 自定义与设备上应用程序方向相关的设置。

Unity一般打包流程

Setting Description
Portrait 纵向,底部与设备顶部对齐
Portrait Upside Down 纵向,底部与设备底部对齐
Landscape Right 横向,左侧与设备顶部对齐
Landscape Left 横向,右侧与设备顶部对齐
Auto Rotation 屏幕可以旋转到您在“Allowed Orientations for Auto Rotation”部分中指定的任何方向。

Other Setting

Identification

Unity一般打包流程文章来源地址https://www.toymoban.com/news/detail-433360.html

Property Function
Override Default Package Name 表示是否替换掉应用的默认包名——同样会影响macOS,IOS和Android
Package Name 设置应用程序 ID,它可以在设备和 Google Play 商店中唯一标识您的应用程序。 应用程序 ID 必须遵循约定 com.YourCompanyName.YourProductName 并且必须仅包含字母数字和下划线字符。 每个段必须以字母字符开头。
Version 输入捆绑包的构建版本号,它标识捆绑包的迭代(已发布或未发布) 版本,以包含由点分隔的数字的字符串的通用格式指定(例如,4.3.2)( iOS 和Android共享)
Bundle Version Code 内部版本号,只用于比较哪个版本更新(数字大表示最新),并不展示给用户。可以见x.y转换为整数或者是每次发布版本简单的加1

到了这里,关于Unity一般打包流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity中打包AAR流程(含环境配置)

    目录 前言 一、【环境配置】 1.【配置JDK】 (1)JDK下载 (2)JDK安装 (3)JDK环境配置 (4)检查安装是否成功 (5)JRE配置 2.【配置Gradle】 (1)确认Gradle版本 (2)Gradle下载 (3)Gradle安装 (4)Gradle环境配置 (5)检查安装是否成功 3.【编写打包AAR脚本】 (1)项目工程切换

    2024年02月06日
    浏览(39)
  • Unity AssetBundle批量打包、加载(场景、Prefab)完整流程

    1、文章介绍 2、具体思路和写法         (1)AB包的打包         (2)AB包的加载         (3)AB包卸载 3、结语 本篇博客主要起记录和学习作用,简单的介绍一下AB包批量的打包和加载AB包的方式,若各位同学有幸看到本篇博客,希望能够对你有所帮助。 (1)

    2024年02月04日
    浏览(39)
  • 2023—Unity打包Pico4(3)全流程(Pico插件)

    一、项目选择了2021.3.0版本的URP,把项目Build成Android 二、打开Project Setting→ 安装最下面的XR Plugin Management 安装完成后的界面,此时还没有Pico选项出现 三、我们需要在该网站下载Pico的SDK包 SDK - PICO Developer (pico-interactive.com) 解压 该文件到指定文件夹 四、打开Unity的Package Manag

    2024年02月08日
    浏览(44)
  • Unity3d发布android项目,打包apk包流程(unity2021.3.10)

    1、如下图,在安装版本设置里,点击添加模块。如果没有添加模块,证明你安装路径不是目前版本的安装路径,先去设置回来。 2、框选Android Build Support,点击继续,如下图, 3、同意,安装,如下图, 4、等待安装完成即可,如下图。 1、点击菜单栏File→Build Settings,进行编辑

    2023年04月23日
    浏览(55)
  • Unity3D PC、Android、iOS平台打包流程

    在Unity窗口中,按下Ctrl+Shift+B快捷键,或者在菜单栏选择File-BuildSettings...,打开设置窗口。“Platform”下的选择项默认选择“Windows,Mac,Linux”。单击左下方的“Player Settings...”继续后续设置(应用名、应用分辨率、图标等),如图1-1所示。 图1-1 PC平台选择 接着,点击Add Op

    2023年04月20日
    浏览(57)
  • Unity与原生交互之AndroidStudio篇——Unity导出Android工程,导入AndroidStudio打包APK全流程

          unityLibrary: unity的功能库模块 , android工程用到的重要文件夹 launcher: unity的启动器模块,包含很少的java代码   直接Open unity导出的整个android项目,Launcher模块作为app启动模块  1.AS先New一个空项目:   Empty Activity 不能选择Language,默认为Kotlin语言  Empty Views Activity 可以选择

    2024年02月11日
    浏览(42)
  • openvino推理的一般流程

    2024年02月01日
    浏览(28)
  • sql注入一般流程(附例题)

      在与服务器数据库进行数据交互的地方拼接了恶意的sql代码,达到欺骗服务器执行恶意代码的目的。本质上是程序把用户输入的数据当成了sql语句执行。 1.寻找注入点,判断闭合拼接 2.判断数据库类型版本 3.判断页面回馈寻找获取数据的方式 4.根据掌握的信息进行攻击 1.判

    2024年02月06日
    浏览(31)
  • 【git】git常用指令(项目一般使用流程示例)

    本文记录github/gitlab上的项目怎么拉到本地、增加开发分支、合并主分支、推到仓库等过程。 1.设置 修改用户名 git config --global user.name “xxxx(新的用户名)” 修改密码 git config --global user.password “xxxx(新的密码)” 修改邮箱 git config --global user.email “xxxx@xxx.com(新的邮箱)” 2.查看

    2024年02月11日
    浏览(37)
  • 数据分析完整流程一般包括哪几个环节/步骤

    问题定义: 确定需要解决的问题或目标,明确分析的方向和目的。 数据收集: 收集与问题相关的数据,可以包括从各种来源获取的结构化或非结构化数据。 数据清洗: 对收集到的数据进行清理,处理缺失值、异常值和重复值,确保数据质量。 数据探索(探索性数据分析

    2024年01月21日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包