最近在将一款现有的游戏向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上,可以说是一个耻辱。

移植过程:

  1. 用Unity打开现有游戏工程,然后File -> Building&Settings -> Switch Platform,选择Windows Store下的 Phone 8.1。这个步骤后Unity会将条件编译符号改成Unity_WP_8_1
  2. 设置 Player Settings,主要是设置Manifest文件,值得注意的是编译选项。
  3. 选中 Unity C# Projects 和 Development Build,点击Build,新建一个文件夹(比如WP81),以生成VS2013可以打开的项目。
  4. 如果生成成功,那么用VS2013打开新生成的sln,继续用VS2013 Build。
  5. 如果编译成功,那么可以将生成的游戏部署到手机上进行测试。
  6. 如果能够和其他平台一样正常运行,那么就可以将游戏上传到Windows商店了。
当然了,除了第1步会很顺利(根据游戏中Assets的数量,可能要花很长时间),而取决于不同游戏,第2~6步都会有很多麻烦和困惑。本节暂不深入。
 
接下来会继续总结和深入过程中的具体细节。
 
新建了一个专门讨论Unity->WP移植的Q群:307409538,暂时不接纳围观新手,入群者必须有实际的游戏项目。

把现有Unity3d游戏向Windows Phone 8.1移植(基础)的更多相关文章

  1. 转载:Cocos2D-x 游戏接入 Windows 设备所需做的六件事

    原文地址:http://msopentech.com/zh-hans/blog/2014/05/09/cocos2d-x-%E6%B8%B8%E6%88%8F%E6%8E%A5%E5%85%A5-wi ...

  2. unity3d游戏无法部署到windows phone8手机上的解决方法

    今天搞了个unity3d游戏,准备部署到自己的lumia 920上,数据线连接正常,操作正常,但是“build”以后,始终无法部署到手机上,也没有在选择的目录下生产任何相关文件.(你的系统必须是win ...

  3. Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生

    一.Unity3D平台简介 Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的 ...

  4. 从一点儿不会开始——Unity3D游戏开发学习(一)

    一些废话 我是一个windows phone.windows 8的忠实粉丝,也是一个开发者,开发数个windows phone应用和两个windows 8应用.对开发游戏一直抱有强烈兴趣和愿望,但奈何 ...

  5. [整理]Unity3D游戏开发之Lua

    原文1:[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.csdn.net/qinyuanpei.如果 ...

  6. Unity3D游戏-愤怒的小鸟游戏源码和教程(二)

    Unity愤怒的小鸟游戏教程(二) 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) AngryEva游戏效果 ...

  7. Unity3D游戏-愤怒的小鸟游戏源码和教程(一)

    Unity愤怒的小鸟游戏教程 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) AngryEva游戏效果: 1 ...

  8. Unity3D游戏开发之SQLite让数据库开发更简单

    各位朋友大家好.欢迎大家关注我的博客,我是秦元培,我是博客地址是http://blog.csdn.net/qinyuanpei.在经历了一段时间的忙碌后,博主最终有时间来研究新的东西啦,今天博客向和大 ...

  9. [Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘终结篇:UniLua热更新全然解读

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. vi使用命令

    二.移动光标类命令 h :光标左移一个字符 l :光标右移一个字符 space:光标右移一个字符 Backspace:光标左移一个字符 k或Ctrl+p:光标上移一行 j或Ctrl+n :光标下移一行 ...

  2. 使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库

    在表DBCON里维护一条记录,指向HANA数据库.con_ENV里填入HANA数据库的主机名和端口号.如vmXXXX:30015 DATA: ls_new TYPE DBCON. ls_new-con ...

  3. Selenium入门20 等待时间

    自动化过程中有的页面元素加载慢或者需要等待特定条件执行后续步骤,此时需添加等待时间: 1 time.sleep()  固定等待时间,需import time 2 webdriver隐式等待 无需引入包 ...

  4. POJ-1422 Air Raid---二分图匹配&最小路径覆盖

    题目链接: https://vjudge.net/problem/POJ-1422 题目大意: 有n个点和m条有向边,现在要在点上放一些伞兵,然后伞兵沿着图走,直到不能走为止 每条边只能是一个伞兵走过 ...

  5. P1980 计数问题

    题目描述 试计算在区间 11 到 nn的所有整数中,数字x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 11到1111中,即在 1,2,3,4,5,6,7,8,9,10,111,2, ...

  6. P1069 细胞分裂

    P1069 细胞分裂 考虑质因数分解 先将m1,质因数分解后再根据数学定理将所有质数的质数全乘m2 然后将输入的数据相同处理,再判断 顺便说一下判断规矩 1肯定不行 如果分解后有没有m1质因数分解中的 ...

  7. jQuery 效果使用

    .hide() 隐藏匹配的元素. .hide() 这个方法不接受任何参数. .hide([duration][,complete]) duration 一个字符串或者数字决定动画将运行多久. comp ...

  8. floyed dij spfa 模板

    /* SPFA模板 */ const int inf=0x3f3f3f3f; inline int SPFA(int s){ memset(dis,inf,sizeof(dis)); queue< ...

  9. js、jquery初始化加载顺序

    // ready 这个方法只是在页面所有的DOM加载完毕后就会触发 // 方式1 $(function(){ // do something }); // 方式2 $(document).ready( ...

  10. java后台poi根据模板导出excel

    public class ExcelUtils { private static final String INSPECTIONRECORD_SURFACE_TEMPLET_PATH = " ...