コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】「Windows Phone/Storeユニバーサルアプリ iOS/Androidからの移植作業時に発生した課題実例」レポート

https://atnd.org/events/55509

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ちゃんのスカートのシェーダが正しく動作していない
  • その他
    • ストアアプリの場合
      1. Configultion ManagerでPlatformを
        ARM から x86 に変更する必要がある
      2. Package.appmanifestのCapbilitiesタブ内にある
        Internet(Client)とInternet(Client and Server)の
        チェックボックスをONにする

まとめ・所感

  • プラグイン
    • 古いバージョン 要注意 (プラットフォーム切り分け対応)
    • C#や.NETのライブラリメソッド 要注意
  • シェーダー、オリジナルの物は要注意