EZFPSをmobile対応させる時にやったことメモ
INVISIBLEのコアな部分にEZFPSというアセットを使わせて頂きました。
http://u3d.as/y2o
これがあればネットワーク対応FPSが組める優れものなのですが、
いわゆるスマートフォン用として使う場合、だいぶ手を入れる必要があるのでメモとして残しておきます。
・プロフィールアイコンは取り払う
元はURLを指定して自分のプロフィール画像として表示できる仕様になっていたのですが、
これをiPhoneで使うと「httpはダメだからhttps使えや」的なログを大量に吐いてアプリが落ちたり
対象の画像がないと 404を大量に吐いて(以下略)とあまり良い影響がないのと
httpsを使っていると輸出コンプライアンス的にも面倒臭いようなので撤去しました。
・ミニマップとタッチ画面はモデルの中に入れる
このゲームはタイトル通り他プレイヤーが半透明で視認し辛い状態にしてあります。
その代わり、ミニマップを搭載して敵の位置を探ってね、というゲーム性にしました。
また、スマホ対応ということでタッチ入力のレイヤーを実装する必要があります。
これをSceneの直下に入れると他プレイヤーのミニマップと重なってしまい
「あれ、何で他人のマップが表示されているんだ?」と悩むことになります。
・ボタンは1タップで複数回メソッドが呼ばれることがある
元のソースはSeversボタンを1回押すごとに表示・非表示を切り替える仕様になっています。
このままスマホに実装すると、「ボタンを何度押してもサーバー選択画面が表示されない」という事象が発生します。
何故かというと、ボタン1タップで複数回メソッドが呼ばれることがあり
瞬時に表示→非表示になるため結果として画面には表示されないというオチになります。
ボタンは表示に特化するなど瞬時に複数回よばれてもいいような作りにしておく必要があります。
・botが水平にしか弾を撃てない
モバイル対応とは直接関係ないのですが
botAi.csの処理でrotateする前にFire()を呼び出しているので
高低差に対応できず、坂で延々と真正面に撃ち続けるという事象が発生します。
Fire()の処理をrotateの後に持ってくることで解決します。
(しばらく気付かなくて悩んでました)
・AnimationとAnimator
Unityでは3Dモデルのアニメ制御に2種類の形式があります。
Assetで入手できる最近のモデルの多くはAnimatorを採用しているのに対し
EZFPSは旧い形式であるAnimationを採用しているので、どちらかに倒す必要があります。
EZFPSはデフォルトでチャット機能やアイテム購入機能が付いているのですが、
極力シンプルなゲーム性にしたかったので取り払ってしまいました。