在你创建游戏的时候,你可能想看看它在编辑器之外独立运行或在网页中播放的情况。本节将讲解如何使用开发(发布)设置以及如何创建游戏的不同版本。
菜单File->Build Settings...用来访问编译设置窗口,它弹出一个包括你建立的游戏场景的列表。

发布设置窗口
当你第一次在一个项目中查看此窗口,它是空白的。当这个列表空白时,如果你建立游戏,只有当前打开的场景将包含在列表。如果你想快速编译一个只有一个场景文件的测试程序,只需编译一个空白场景列表的播放器。
为多场景作品添加场景文件到列表是很简单的。有两种方法来添加它们。第一种方法是点击Add Current按钮,你会看到当前打开的场景出现在列表中。第二种添加方法是从项目视图中将它们拖到列表中。
注意这一点,你的每个场景都有不同的索引值。Scene 0是当你创建游戏时第一个被加载的场景。当你想要载入一个新的场景,在脚本中使用Application.LoadLevel()函数。
如果你已经添加了多个场景文件,并希望重新排列它们,只需在列表中拖动它到其它场景上面或下面,直到你需要的顺序。
如果你想从列表中删除场景,单击选中,然后按删除键。该场景会从列表中消失,不会包含在你的作品中。
当你准备好发布你的作品,选择一个平台(确保出现Unity标识),如果不是你想要的平台,那么点击Switch Platform按钮,选择你要的平台,最后按下Build按钮。使用标准保存对话框,你可以选择游戏的名称和位置,点击保存,Unity将很快建立你的游戏作品,就这么简单。如果你不确定在哪里保存你的游戏,可以考虑保存到项目的根目录中。不能保存到资源文件夹中。
勾选Development Build复选框,将启用Profiler功能,也使Autoconnect Profiler和Script Debugging选项可用。

Desktop
Web Player Streaming 网络流媒体播放器
流媒体播放器使你的网页游戏完成加载就立即开始播放场景0。如果你的游戏有10个关卡,并没有多大意义,这将迫使玩家要等待下载完2-10所有关卡,才可以开始玩第一关。当你发布了一个网页游戏,要让下载完的必需资源尽快按顺序出现在场景文件中,场景0所包含的资源一经加载完成,则游戏开始。
简而言之,流媒体播放器将让玩家玩你的游戏比以前更快。
你唯一需要担心的,是要检查确保下一关在加载之前已经完成数据流。
游戏中,可以使用下面的代码来加载一个关卡:
Application.LoadLevel("levelName");
在流播放器的网页游戏中,你必须先检查已完成数据流的关卡,通过CanStreamedLevelBeLoaded()函数来完成,它是这样工作的:
var levelToLoad = 1;function LoadNewLevel () {
        if (Application.CanStreamedLevelBeLoaded (levelToLoad)) {
                Application.LoadLevel (levelToLoad);
        }}
If you would like to display the level streaming progress to the player, for a loading bar or other representation, you can read the progress by accessing GetStreamProgressForLevel().
如果你想在游戏(播放器)中显示关卡数据流的进展情况,比如做一个进度条或其他表现形式,你可以进一步阅读GetStreamProgressForLevel ( )函数部分。
Offline webplayer deployment 离线部署网络播放器
如果一个网络播放器离线部署选项被开启,UnityObject.js文件,(使用带有主页的播放器)播放器编译时被放置在一起。这个启用,播放器带有本地脚本文件正常工作,即使没有网络连接;通常UnityObject.js从Unity的服务器下载,因此,确保最新版本。
Building standalone players 创建独立游戏
使用Unity你可以创建可用于Windows和Mac系统(Intel, PowerPC or Universal,在这两种架构上运行)的独立应用程序,只需在创建设置对话框中选择目标,并按下了"Build"按钮。当创建独立游戏时,产生的文件将因不同的目标而决定。在Windows系统中将创建可执行文件(***),以及一个数据文件夹,其中包含所有应用程序的资源。在Mac系统中将创建一个应用程序包,包含程序运行所需要的文件及资源。(Intel、PowerPc、Universal在这里是指Mac系统使用的处理器。Intel英特尔不用说了,地球人都知道;PowerPc是由IBM、苹果、摩托罗拉联合开发的处理器;Universal则是通用处理器)
在Mac系统中发布你的独立游戏,只不过是提供应用程序包(一切都封装在其中)。在Windows上则需要同时提供***文件和数据文件夹从而让别人来运行。想想这种情况:其他人为了运行你的游戏,必须在他们的电脑中有相同的Unity为你创建的文件。
Inside the build process 内部生成过程
在创建过程中将会把一个游戏程序的空白副本放到你指定的地方。然后,将通过使用发布设置中的场景列表,在编辑器中依次打开它们,对其进行优化,整合到程序包中。它还将计算包括场景在内的所有资源数据,并存储到程序包里一个单独的文件中。

任何一个标有'EditorOnly'标签的游戏对象将不包含在发布的作品中,这对于调试那些不需要包含在最终游戏里的脚本是非常有用的。 
    当加载一个新的关卡时,所有上一关的对象将被销毁。为了防止这种情况,在你不想破坏的对象上使用DontDestroyOnLoad( )函数,这是最常用的方式,可以将它用于加载一个关卡时保持音乐播放,或用于保存游戏状态和进度的控制脚本。 
    After the loading of a new level is finished, the message: OnLevelWasLoaded() will be sent to all active game objects.
    何以最佳方式创建一个多场景游戏,例如一个主菜单,一个记分屏,和当前关卡显示,请参阅Scripting Tutorial.pdf

iOS
Inside the iOS build process iOS内部编译过程
iPhone/iPad应用程序编译过程分两步:

XCode project is generated with all the required libraries, precompiled .NET code and serialized assets.

XCode项目生产带有所有需要的库,预编译.NET代码并序列化资源。
    XCode project is built and deployed on the actual device.

XCode项目构建并在实际的设备上部署。

当在Build settings对话框点Build,只是完成了第一步,点"Build and Run",执行这两个步骤。如果在项目中对话框,用户选择已经一个存在的文件夹,将显示一个警告信息。目前,有两个XCode项目生成模式选择:

replace - all the files from target folder are removed and the new content is generated

替换 - 从目标文件夹所有文件被删除并生成新的内容。
    append - the "Data", "Libraries" and project root folder are cleaned and filled with newly generated content. The XCode project file is updated according to the latest Unity project changes. XCode project "Classes" subfolder could be considered as safe place to place custom native code, but making regular backups is recommended. Append mode is supported only for the existing XCode projects generated with the same Unity iOS version.

追加 - Data,Libraries和项目根文件夹被清空,并填充新生成的内容。XCode项目文件根据最新的Unity项目变更进行更新。XCode项目Classes子文件夹被视为安全的地方,可放置自定义的本机代码,但建议定期备份。追加模式仅支持现有的Xcode项目,带有有相同的Unity iOS版本生成。

如果点Cmd+B,那么自动build and***n过程被调用,最近使用的文件夹被假定为编译目标。在这种情况下,追加模式假定为默认值。

Android
Android应用程序的生成过程中分两个步骤进行:

生成所有需要的库和序列化资源的应用程序包(.apk文件)。
    Application package is deployed on the actual device.

在实际设备上部署应用程序包。

当"Build"到"Build settings"对话框只是第一步完成。点"编译和运行",执行这两个步骤。如果按Cmd+B然自动编译并调用运行过程。
当第一次尝试建立一个Android项目,Unity会询问查找Android SDK,这需要在设备上安装Android应用程序。可以以后在首选项中更改此设置。

当编译应用到Android上,确保设备设置USB Debugging和Allow mock locations复选框被选中。

You can ensure that the operating system sees your device by***nning adb devices command found in your Android SDK/platform-tools folder. This should work both for Mac and Windows.
确保操作系统型号,在Android SDK/platform-tools文件夹查找,运行adb devices命令。

Unity为您建立的应用程序包(.apk文件)和连接的设备上安装。在某些情况下,你的应用程序无法像iPhone一样自动启动,所以你需要解锁屏幕,和在某些罕见的情况下,在菜单中查找新安装的应用程序。
Texture Compression 纹理压缩
在编译设置,你还会发现纹理压缩选项。默认,Unity为没有单独的纹理格式重写的纹理,使用ETC1/RGBA16纹理格式。
如果你想生成一个应用程序包(.apk 文件)针对一个特定的硬件架构,可以使用纹理压缩来覆盖默认的行为。任何纹理使用纹理格式覆盖将保留格式;仅纹理设置为自动压缩将使用纹理压缩选项中选择的格式。
确保应用程序部署的设备支持选择的纹理压缩格式,Unity将编辑AndroidManifest包含标签匹配所选的特定格式。这将启用 Android Market filtering mechanism 过滤机制,仅用于带有相应图形硬件的设备启用应用程序。

Preloading 预加载
发布的作品将在加载场景时自动预装场景中的所有资源, scene 0是例外,这是因为第一个场景通常是一个启动画面,你要尽可能快地显示它。
要想确保所有内容完成预加载,你可以创建一个空场景调用Application.LoadLevel(1),在发布设置里让这个空场景的索引为0,这样所有后续关卡将会预加载。
You're ready to build games 你已准备好建立游戏了
现在,你已经学会如何使用Unity的界面,如何使用资源,如何创建场景,以及如何发布你的作品。没有什么能够阻止你创建游戏的梦想。你一定沿途已经学到了很多,我们在这里提供帮助。
标签: unity3d Android 编译 iOS
分类:Manual| 翻译: 第七把剑

更多Unity3D用户手册分享尽在web3D纳金网www.narkii.com

Unity3D 编译发布(Publishing Builds)相关推荐

  1. QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”的可能解决方法

    QT编译发布程序后报错如缺少dll."应用程序无法正常启动(0xc000007b)"的可能解决方法 参考文章: (1)QT编译发布程序后报错如缺少dll."应用程序无法正 ...

  2. Unity3D项目实战笔记(10):Unity3D编译IPA的PostEvents–节约时间利器

    最近,SDK支付等接入差不多了,就从Unity3D生成IPA (企业版License), 然,需要手动执行的PostEvents竟然多大10项+, 这些我默默的承受了1周时间,每次约浪费20分钟-额外 ...

  3. 教程Xcode 4下编译发布与提交App到AppStore

    使用xcode 4发布app 实例操作是本文介绍的内容,不多说,我们直接进入话题. 1.iOS Provisioning Portal 和iTunes Connect 没有变,下载与安装.mobile ...

  4. 怎样在Xcode 4下编译发布与提交App到AppStore?(转)

    1. iOS Provisioning Portal 和iTunes Connect 没有变,下载与安装.mobileprovision文件与以前一下. 2. Xcode 4 整合相关的工具(All ...

  5. PB8 0应用程序编译发布技术研究

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 摘要:本 ...

  6. PB8.0应用程序编译发布技术研究

     执行文件的建立 1.编译格式的选择 PowerBuilder 8.0对生成可执行文件提供了两种编译格式:伪代码(Pcode,即pseudocode的缩写)和机器代码(Machinecode).伪 ...

  7. OpenSceneGraph-3.6.4-VC2015-x86 编译发布

    1. OpenSceneGraph 3.6.4 编译结果 使用 OSG 官方 3.6.4 稳定版本代码,基于 Visual Studio 2015 (140) 编译的 x86 (win32) 版本自己 ...

  8. android游戏怎么发布,用Unity3d怎样发布Android游戏

    用Unity3d怎样发布Android游戏 初识unity3d已经有一段时间了.大约那是2012年的暑假.无意从手机上搜到了这个引擎.从今以后我就喜欢上他了.然后又从网上找了许多关于unity资料.一 ...

  9. unity3d android包太大了,unity/unity3d编译成android apk包瘦身方法

     unity/unity3d编译成android apk包瘦身方法 本文系原创,请转发的朋友带上我的链接. 相信用unity开发的同学都会遇到类似的经历:明明资源图片不大,但是发现打包后apk文件 ...

最新文章

  1. Custom Client Side Drag and Drop Behavior in ASP.NET AJAX
  2. 95.91p30.space\/index.php,关于 ThinkPHP6 分页样式的定制及点击下一页搜索条件丢失的解决方法...
  3. Windows 单元下的公用函数目录(A-F)
  4. mysql之jdbc连接数据库和sql注入的问题
  5. 揭秘山寨手机“四寨主”:都高仿苹果iPhone
  6. 常见五大开源网络监控软件测评分析
  7. TC流量控制HTB示例
  8. 科学网—世界上最神奇的30个经典定律——读书笔记 - 贾琳的博文 http://blog.sciencenet.cn/blog-455749-859616.html
  9. win7_ fiddler 证书安装失败解决方法
  10. pythonturtle魔法阵_python turtle 库绘制简单魔法阵
  11. 【CUDA学习笔记】4.锁页内存(pinned memory or page locked memory)
  12. rtx3090显卡什么级别 rtx3090显卡什么水平 3090属于什么档次的显卡
  13. 电话拨键号码(DTMF信号)识别
  14. python水印检测_使用Python检测照片中的特定水印(无SciPy)
  15. Certificate for <xxx.xxx.xxx.com> doesn‘t match any of the subject alternative names: [xxx..com]
  16. webpack搭建服务器
  17. 机器学习必备知识点 之 先验概率和后验概率
  18. Nat. Mach. Intell. | 快速的蛋白质结构从头预测
  19. [android][马达]振动反馈-转子马达效果参数配置
  20. 耐高温滑环在特殊环境作业时需要具备哪些条件

热门文章

  1. 斯坦福Nature论文宣布新突破:AI诊断皮肤癌达专家水平
  2. 缺陷程序数据集Defects4J v1.4.0版本的配置
  3. 有必要等arm版mac_基于 ARM 芯片的苹果 Mac,真是你想要的?
  4. Java位运算符详解(移位、位与、或|、非~、异或^)
  5. 66破解网整站源码/66破解网带数据源码/Thinkphp+layui版
  6. retinanet 部署_RetinaNet: Focal loss在目标检测网络中的应用
  7. 消息队列的实现原理和ActiveMQ详解
  8. MMOARPG每周维护报告(七)-皮肤道具武器商城
  9. Android 创建文件夹与文件
  10. birch聚类 java_用scikit-learn学习BIRCH聚类