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

はじめに

前回からの続きで、TANKSNETアセットプロジェクトを活用させて頂いて戦艦アプリのフィージビリティスタディしています。

海戦シーンの準備

前回までは元々のタンク戦闘シーンの砂漠環境の色だったのですが、戦艦決闘空間的な世界に変更してみます。どこかスクリプトで設定されているかといろいろ探しましたが、特にないので、対象シーン(前々回追加した海のシーン)で見てみるとMainCameraで茶色世界色が指定されていました。それを通常やるようにskyboxに変更して、そして通常行うようにwindowメニューのLightingメニューの中のSettingの中でいつも使っているskyboxに設定しました。結果は良い感じで出たので良かったです。

既にこの戦艦大和はそれらしい雰囲気で操作が可能となっています(まだmacのキーボードからの操作ですけど)。それでも少なくともシングルモード(マルチプレイモードではないという意味)では1隻の戦艦は出せましたので、詳細創りこみは置いておいて次の課題に取り組みます。

各種軍艦の追加

次は複数種類の軍艦をプレイヤーが選択可能にすることです。以前のネットワークゲーム検討ではここで完全に挫折しています。この残念な経験があったからこそめんどくさい人のアセットを修正して使うというアプローチしているのです。

元となるTANKSNETアセットでは軍艦ではなくタンクの種類です。3種類のタンクが準備されています。

この3種類のタンクがどこに登録されているかを調べると永続的シングルトン(DontdestroyOnLoad)として登録されているDynamicObjectLibraryの中に登録されていました。

DynamicObjectLibrary

DynamicObjectLibraryの中をInspectorで見るとTankLibraryスクリプトがアタッチされていて、その内容を見てみるとタンクデータの構造体が定義されていて3種類のタンクが登録されています。下記例では最初のタンクにyamatoプレファブを設定していて戦艦大和が登場できるようにしています。

TANK種類の追加(つまり自分的には軍艦種類の追加)は、このInspector上でTankDefinisionのサイズを3から必要な数に変えてまず増やします。

一方で、タンクのプレファブを元に各種軍艦のプレファブを創り、これをTankLibraryに追加することでユーザーがゲーム開始時にメニューから軍艦を選択可能にすることができました。(ちょっと軍艦種類は3種類からまだ増えていませんが)

使用する軍艦アセットはいつも紹介させて頂いている下記アセットです。

米国空母エンタープライズを選択した例

独戦艦ビスマルクを選択した例

というように軍艦を選択してシングルプレーヤーモードでの戦闘シーンを起動できるようになりました。

次はネット対戦モードでの軍艦選択と軍艦操作

次の最優先課題は現状のシングルプレーヤーモードをネットワーク対戦モードにすることです。ようやくネットワークゲームの内容に近づきつつあります。

次回はこの検討の内容について進展があれば報告させて頂きます。

最後に

牛歩で進んでいますが、とにかくネットワーク対戦の実現可能性を最優先で進めています。他にもいろいろ詰めるべき要素技術はありますがまずはこれを実現すべく努力します。

以上