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

はじめに

前回に決めた方針に従い、画面操作による戦艦操船および主砲射撃制御機能を実現します。

画面操作による戦艦操船と主砲射撃制御

少し問題があるのですが、TankKeyboardInput.csを中心にHUDController.csに追加処理することで何とか実現できました。

簡単な操作用のスイッチ類をHUDCanvas内に追加します。操船用としては、①増速、②原則、③面舵、④取り舵の4つです。下記画面の左側に追加しています。

主砲射撃制御用としては①主砲右旋回、②主砲左旋回、③主砲仰角アップ、④主砲仰角ダウン、⑤主砲射撃の5つです。下記画面の右下に追加しています。

昨日創ったキーボードからの入力処理をボタンイベント処理に置き換えます。ボタンイベントはそれぞれのボタンについてbutton down, button upでHUDController経由でTankKeyboardInputへ伝達します。

シングルプレイヤーモードでの操作確認

まずはシングルプレイヤーモードでの動作確認です。まあ動きました。

ネットワーク対戦モードでの操作確認

次はネットワーク対戦モードにして、mac-appとしてビルドしたアプリとunity editorで動作させる2つのアプリをネットワーク対戦モードで動作させます。ただしmac内直結なのでネットワーク遅延時間はほぼ無い状態ですけど。

自分で操作する戦艦ビスマルクと相手が操作する戦艦大和との対戦画面です。

手前がビスマルク、奥の小さく見えるのが戦艦大和です。大和の上に見える小さい点は、ビスマルクが発射した砲弾です。狙って撃ったのでまあまあ大和に向かって飛んでいます。

大和側を操作してかなり接近した状態に持ってきました。大和の上にちょっと見えるのはビスマルクが撃った砲弾が飛んでいるところです。

というように、シングルプレイヤーモードでもネットワーク対戦モードでも戦艦操船、主砲射撃制御、主砲砲弾処理等がまあそれらしく動き始めました。

現在できていることの整理

1.3種類までの軍艦を選択して登場できる仕組み

2.シングルモードで戦艦を自在に操艦操作する

3.ネットワーク対戦モードで戦艦を自在に操作する

4.主砲射撃制御 (今回これのノウハウを獲得)

5.スマホ上でのタッチ処理による操作

現在できていないことの整理

そろそろネットワーク対戦ゲームの本質課題であるネットワーク遅延の影響を調べる必要があるのでしょうかね。それ以外のコア機能は何となく動き始めましたからね。

3.インターネット接続を想定した遅延時間増の場合の動作調整

次に実現を検討すべきことを考えてみる

ネットワーク遅延のシュミレーションができるのかどうかこれから調べることになると思いますが、まあなんとかして動作確認をするのだと思います。思ったより結構動き始めていますのでなんか嬉しいです。

最後に

当初のねらい通り自分でネットワーク関連機能の勉強無しでここまでこれています。なんとかそのままうまく進めたいものです。

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

以上