在你创建游戏的时候,你可能想看看它在编辑器之外独立运行或在网页中播放的情况。本节将讲解如何使用开发(发布)设置以及如何创建游戏的不同版本。 菜单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)
最新推荐文章于 2023-01-09 16:56:52 发布