Unityでネットワークゲームを創りたい(UNET)6

はじめに

前回の続きで、これまでに創った海のシーンで各種軍艦でのネットワークモードでの動作に挑戦したのですが、残念ながらうまく行っていません。ちょっと効率が悪すぎるので少しフィージビリティスタディ(FS)を落とそうかと考えています。

という情けない報告の回となります。

戦車の種類を増やす

TANKS! NETWORKINGアセットのデフォルトでは戦車種類は3種類なのですが、調子に乗って軍艦プレファブを9種類創ってDynamicObjectLibraryの中のTank Libraryの中のTankDefinitionsに追加しました。3種類を9種類に拡張してそれぞれの軍艦プレファブを追加するという作業。

前回ではこの状態でシングルプレイヤーモード(ネットワーク対戦ではない)で動作させてそこそこ動いていましたが、実はちょっと問題がありました。4台目以降の軍艦をセレクトするとどこかで配列範囲外エラーが出る。まあどこかで何かの設定がされていない部分があるということです。

ネットワーク対戦モードを試す

先にネットワーク対戦モードでの動作確認をするのが良いと考えてネットワーク対戦モード向けにシーンを登録してmac向けにビルドします。

mac向けにビルドしたアプリを起動し、そしてUnityのeditorでもうひとつアプリを起動します。これでネットワーク接続された2つのアプリが存在したことになります。

editor側で”CREATE GAME”を実行し、mac-app側で”FIND GAME”します。ちゃんと相手側が見えて戦艦大和と戦艦ビスマルクでネットワーク対戦開始の状態まで持って行けました。

ですが、そこから先に進めません。シーンが開かない。エディタ側で見るとエラーが発生している。エラー内容は配列の範囲外エラーである。それもこれまでに見たことのないspawn関連の情報取得に関してのインデックス領域外の様子。

戦車の種類(ここでは軍艦の種類)を9種から3種に戻して同じことをやっても同じエラーが発生する。エラー説明が指し示すスクリプトはネットワーク関連なので見たことがない処理や変数が多数。こらなかなか厳しそう。

ちょっと行き詰ってしまいました

ということで行き詰ってしまいました。今度どのように突破するのかは考えますが、地道にスクリプトを見ていく必要がありそうなので難儀しています。やっぱり人のコードは難しいですね。

アセットストアでのTANKSNETWORKアセットのユーザーからのコメントを見ると開発ドキュメントは別途公開するとありますのでこれを待ちますか。

また進展があれば報告させて頂きます。

最後に

どうも3度目のフィージビリティスタディーでもネットワークゲーム化の道筋は得られていません。もうタイムリミットなのでちょっと他アプリ開発に集中したいと考えています。まあ日々気にしておいて情報が得られたら少しずつ先へ進むというやりかたにさせて頂きます。

なんかちょっと根性無しな内容ですみません。