UnityNetworkでオンライン対応2-キャラクターを登場させる-

記事内に広告が含まれています。

今回はUnityNetworkにプレイヤーキャラクターを登場させるところまでをやりたいと思います。

前回はオフラインで移動と攻撃アニメーションをするキャラクターを作成しました。

UnityNetworkでオンライン対応1-まずは動くキャラ作り-
UnityNetworkを使ったマルチプレイ対応の為にまずはオフラインで動くキャラクターの作成を行います。
スポンサーリンク

NetworkManagerを作成する

ネットワーク接続を管理するNetworkManagerゲームオブジェクトを作成します。

ヒエラルキー上で右クリック→Create Emptyで空のゲームオブジェクトを作成し、名前をNetworkManagerとします。

インスペクタのAdd ComponentからNetwork→NetworkManagerとNetwork→NetworkManagerHUDを取り付けます。

UnityNetwork用のNetworkManagerのインスペクタ

↑のようになります。

NetworkManagerコンポーネントはネットワークの状態を管理するコンポーネントで、NetworkManagerHUDはオンライン接続のテスト用のコンポーネントで、オンライン接続処理と簡単なUIを担当します。

NetworkManagerコンポーネントのSpawn InfoのPlayer Prefabにプレイヤーキャラクターのプレハブを設定しますが、まだプレイヤープレハブのオンライン対応をしていない為、対応が出来たら設定します。

プレイヤープレハブのオンライン対応

プレイヤーキャラクターをオンラインに登場させる為にキャラクターのインスペクタからAdd Component→Network→NetworkIdentityコンポーネントを設定し、

Local Player Authorityにチェックを入れます。

UnityNetworkキャラクターにNetworkIdentityを取り付ける

NetworkIdentityはネットワーク上でこのゲームオブジェクトの身元を判別する為に使用されます。

Local Player Authorityにチェックを入れる事でクライアント側でこのキャラクターを制御出来るようになります。

プレイヤーキャラクターをAssetsフォルダ内にドラッグ&ドロップしプレハブにします。

プレハブにしたら、ヒエラルキー上のUnityNetworkPlayerゲームオブジェクトは削除しておきます。

次にNetworkManagerに先ほどプレハブにしたプレイヤーキャラクターをドラッグ&ドロップし、オンラインに接続したらそのキャラクターを登場させるようにします。

NetworkManagerのPlayerPrefabにプレイヤーキャラクターを設定

ここまで出来たらシーンをビルドしておきます。

NetworkManagerHUDについて

NetworkManagerHUDコンポーネントを取り付けていると、Unity実行時にネットワーク処理と簡単なUIが表示されます。

NetworkManagerHUDのUI画像

UnityNetworkではサーバーにクライアントが接続してゲームが進行しますが、ホストはサーバーとクライアントを兼任します。

その為、自分のパソコンでオンラインの確認をする時はLAN HOSTボタンを押してサーバー兼クライアントとしてホスト接続した後、別のスタンドアロンを実行しLAN Clientボタンを押してクライアント接続をします。

他のボタンはとりあえず無視していきましょう・・・・(ーー;)

ビルドして確認

シーンをビルドしてスタンドアロン形式で出力し、2つのアプリケーションを実行します。

ひとつはLAN HOSTボタンを押してホストとして起動し、もうひとつはLAN Clientボタンを押してクライアントとして接続します。

↑のようになりました。

オンラインに接続するとそのクライアントのプレイヤーキャラクターが登場してますね。

しかし、自身のアプリケーション上の別のプレイヤーキャラクターも一緒に動いたり攻撃したりしてしまいます。

これは自身のアプリケーション上に登場したプレイヤーキャラクターにもCharacterControllerやUCharaスクリプトが取り付けられているので、キーボードで動かそうとすると他のプレイヤーキャラクターのスクリプトも有効な為、一緒に動いてしまいます。

次回は自身のキャラクターのみ動かせるように処理を改造していきたいと思います。

参考サイト

Unityチュートリアルーネットワークマネージャーー

Unityチュートリアループレハブのセットアップー

Unityチュートリアループレイヤープレハブを登録するー

タイトルとURLをコピーしました