天天看點

把現有Unity3d遊戲向Windows Phone 8.1移植(基礎)

最近在将一款現有的遊戲向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,暫時不接納圍觀新手,入群者必須有實際的遊戲項目。