2015MercuryStudioUnityによるゲームアプリ開発を中心に、写真やデザインの話などページHomeGamePhotoProfile2015年9月3日木曜日Unity本に載せきれなかった話いよいよ明日はUnity本の発売日です。(結構高いので買おうか悩んでいる方は値下がりしてからで良いと思います。)イベントなどでは先行販売?されているそうなので、ちょっと早いですが先立って書籍内に載せきれなかった話について、この場でお伝えします。◆1.iPhoneでトラブルが起きる基本的に書籍内の検証等はAndroid端末で行っています。本来であればiPhoneでも検証すべきですが、特に新しい手法を用いているわけでもなし、問題無いだろうと油断していたのが失敗でした。一つだけ、今まで使ったことのない文がありました。それは「PhotonNetwork.time」です。これはサーバーが稼働してからの時間を取得するものですが、書籍中で使用したUnity5.0.2とPUN1.51の組み合わせにおいてはiPhoneだけ異なる値が取得されます。※各最新版ではiOSでも正しい値がとれるとのことですとはいえUnityのバージョンを下手に上げるとトラブルの原因になりますので、一般公開版(完成版)では「PhotonNetwork.time」を使わない方法に処理を切り替えています。具体的にはRPCを使った処理への変更ですが、こちらは一般公開版の「gameManage.cs」内をご覧ください。◆2.iPhoneでトラブルが起きる2おそらく私の実装方法が悪いのですが、KiiCloudにおいて書籍中の初期化方法では正しく初期化が行えません。書籍中の初期化方法とは、http://documentation.kii.com/ja/guides/unity/quickstart/adding-kii-cloud-sdk-to-your-application/にあるKiiCloudが公式で用意したリファレンスガイドによるものですので、間違いはないはずですが、すみません、結局根本的な原因は未だ不明です。回避方法として、上記の初期化方法を使わず、自ら明示的に初期化を行うという手法が有効です。Awake(){//Kii初期化を手動で行うDontDestroyOnLoad(this.gameObject);Kii.Initialize("AppID","AppKey",Kii.Site.JP);}内の「Kii.Initialize」が該当します。◆3.PhotonNetwork.countOfRoomsの罠countOfRoomsとは、現在ルームが何部屋あるかを取得するものです。気をつけなければならないのは、この取得されるルームの数はisOpenやisVisibleの状態を問わず、またルームが定員一杯であったとしてもカウントされることです。「countOfRooms」の値が0だったら部屋がないので自分で作成する、これが1だったら”入室可能な”部屋があるので入室処理を行う。いった処理ができないことにあります。仮に値が1だとして、その部屋が入室可能かどうかはわからないのです。書籍の中にある複数ルームを参照したマッチングについては、思いっきりこの間違いを犯しており、状況によってはしばらく部屋に入れないことが考えられます。そこで「PhotonNetwork.GetRoomList()」を用いて個別にルーム情報を読み込み、isOpenの状態はどうなっているか、定員に達していないかを判別した上で、入室または新規ルーム作成かを振り分ける必要があります。こちらについては、「gameManage.cs」の「betterRoomSearch()」をご覧ください。◆4.standaloneでの書き出し方法AppCの導入を行うとモバイル環境以外での書き出しができなくなります。これはSDKに問題があるわけではなく、AppC独自の構文が使用できないことに起因するものです。appCCloud」や「adsManage.appCCloud.Ad.ShowCutinView()」などをコメントアウトすることで、引き続きwindows,mac用として書き出すことが可能です。デバッグの際はとても役に立つので、ご活用ください。◆5.iOS審査対策iOSにてアプリを審査にかける際、広告用IDの使用の有無について回答する箇所があります。AppCは広告用IDを使用していませんが、UnityAdsは使用しているとの回答をいただいています。審査の際の回答は「広告の表示に使用している」となるのですが、Apple側で広告の表示ができなければ審査で弾かれることになります。書籍内のサンプルのように対戦後に表示されるといった場合、Apple側ではそこまで見ていないことがあります。(もっとスマートな方法があるかもしれませんが)対戦終了から広告が表示されるまでの過程を動画にし、予め審査の情報として提供すると、リジェクトで足止めを食らう日数が削減できるのでお試しいただければと。こんなところでしょうか。何かのお役に立てば幸いです。