最近在将一款现有的游戏向Windows Phone平台移植,暂时完成了一个小阶段,做一个总结。
开发环境:
- Windows 8.1 系统及以上,愿意的话,用Windows 10 尝鲜也可以。
- 微软账号,用于在建立Windows Phone项目时获取开发证书,免费。http://signup.live.com/
- 微软开发账号,用于上传应用到商店, http://dev.windowsphone.com/ ,19刀永久管用。
- Visual Studio 2013 ,如果用旗舰版,则自带 Windows Phone 8.1 的 SDK,尽量用最新的update吧。
- Windows Phone SDK,如果用的是Express的VS2013,则需要单独下载Windows Phone 8.1 的 SDK, https://dev.windowsphone.com/en-us/downloadsdk
- Unity ,http://unity3d.com/unity/download,尽量下载最新的稳定版本吧。
- Windows Phone 8.1 设备,游戏相对来说更吃内存,尽量买个1G以上内存的机器,比如636,638。
基础理论:
- Mono是一个开源的跨平台框架,其目标是实现一个开源的.NET框架,称之为Mono Runtime,开发语言主要但不只是C#。
- Unity的底层是用C++实现的,然而嵌入了Mono Runtime做为其脚本运行引擎。
- Unity嵌入的Mono是其定制过的,也就是说,它与官方的Mono并不是完全一致的,其当前的Mono版本是2.6,并且不开源。
- Unity在Windows Phone 8.1上的运行时主要是Windows Runtime,和MS自己的.NET子集,以及可以兼容于这部分.NET子集的Mono。
- 官方Mono,Unity的Mono,MS的.NET子集。这三者之间有交集,然而移植过程中主要处理的是他们的非交集部分。
- 不能直接让Unity的Mono不加修改就跑在Windows Phone上,而可以跑在IOS/Android上,可以说是一个耻辱。
移植过程:
- 用Unity打开现有游戏工程,然后File -> Building&Settings -> Switch Platform,选择Windows Store下的 Phone 8.1。这个步骤后Unity会将条件编译符号改成Unity_WP_8_1
- 设置 Player Settings,主要是设置Manifest文件,值得注意的是编译选项。
- 选中 Unity C# Projects 和 Development Build,点击Build,新建一个文件夹(比如WP81),以生成VS2013可以打开的项目。
- 如果生成成功,那么用VS2013打开新生成的sln,继续用VS2013 Build。
- 如果编译成功,那么可以将生成的游戏部署到手机上进行测试。
- 如果能够和其他平台一样正常运行,那么就可以将游戏上传到Windows商店了。
当然了,除了第1步会很顺利(根据游戏中Assets的数量,可能要花很长时间),而取决于不同游戏,第2~6步都会有很多麻烦和困惑。本节暂不深入。
接下来会继续总结和深入过程中的具体细节。
新建了一个专门讨论Unity->WP移植的Q群:307409538,暂时不接纳围观新手,入群者必须有实际的游戏项目。
时间: 2024-10-11 10:34:25