Windows Phone/Storeユニバーサルアプリ iOS/Androidからの移植作業時に発生した課題実例
株式会社ポケット・クエリーズ 代表取締役 佐々木 宣彦様
移植実施したゲームタイトル概要
https://itunes.apple.com/jp/app/jin-rimo-de-yuha-ren-shou-bu-zu/id768595026?mt=8&uo=4&at=10l8JW&ct=hatenablog
https://itunes.apple.com/jp/app/appurusakka/id785083363?mt=8&uo=4&at=10l8JW&ct=hatenablog
- プラットフォーム
- iOS・Android
- 使用アセット
- NGUI 2.6.1
- EasySave2
- Facebook SDK
- Prime31
- Etcetra
- Etcetra Android
- AdMod
- GameCenter
- WebViewPlugin(GREE)
- SpriteStudio
- iTween
課題サマリ
- プラットフォーム切り分け問題
- プラグイン問題
- NGUI
- EasySave2
- SpriteStudio
- Facebook SDK
- WindowsStoreアプリプラグイン
- System.Collections.Hashtable問題
- シェーダ問題
プラットフォーム切り分け問題
- Unity で開発した iOS/Android アプリを Windows Phone/Store
ユニバーサルアプリに移植するときはプラットフォームの切り分けで
「UNITY_WP8」「UNITY_METRO」も確認する必要がある
#if UNITY_IPHONE #elif UNITY_ANDROID #elif UNITY_WP8 || UNITY_METRO #endif
プラグイン問題
- NGUI:2.x系が動作しない問題と3.xへのVer.Up時の問題
- 2.xではPhone/Store共にNGUI動作しない
- 3.xにUpGradeすると、大きさ問題発生→手動で修正しまくる
- NGUI:ScreenSize(自動対応)問題
- iOSの640x1136に合わせてデザインしている
- Androidはこの設定(Minimum Height = 640)でOKだが
Windows Phoneでは数値変更必要
- NGUI:タップがダブルタップに!問題
- NGUI2.6.1で発生→3.x系へのVer.Upで修正
- EasySave2:暗号化処理問題(Phoneのみ。StoreアプリはOK)
- .NET for Windows phoneは.NET for Windowsのサブセット
- ビルド時にmissingとなるクラスもある
- 暗号化はあきらめ、暫定対応としてPlayerPrefsの利用に処理変更
- 先月のEasySave2のVer.UpでWin Phone対応した?
Sprite Studio:文字エンコード問題
- 「#elif UNITY_WP8 || UNITY_METRO」追加
Facebook SDK:Win対応問題
- 現在Win Phone/Storeアプリ用がない
- WindowsStoreアプリプラグイン:ルール上の課題(ドキュメント)
- プラグイン実装時に必要な設定追加
- Prime32 Ads SDKの組み込み時の例:
P31MetroAds.DLLを追加する
- System.Collections.Hashtable問題
- シェーダ問題
- オリジナルで作ったシェーダーがうまく動作しない
- Windows Storeアプリ
- World Wide Traveling feat.Query-chan
- 株式会社南国ソフト様
- Queryちゃんのスカートのシェーダが正しく動作していない
- その他
- ストアアプリの場合
- Configultion ManagerでPlatformを
ARM から x86 に変更する必要がある - Package.appmanifestのCapbilitiesタブ内にある
Internet(Client)とInternet(Client and Server)の
チェックボックスをONにする
- Configultion ManagerでPlatformを
- ストアアプリの場合
まとめ・所感
- プラグイン
- 古いバージョン 要注意 (プラットフォーム切り分け対応)
- C#や.NETのライブラリメソッド 要注意
- シェーダー、オリジナルの物は要注意