bigbanner

Unity マルチプレイオンラインゲーム開発

Unityオンラインゲーム作成【Chapter6】オンラインゲーム化

更新日:

遂にオンラインゲーム化まで来ました!

が、まずは今から作る物をイメージしてみましょう。

ゲーム的には以下のようなものを作ります。

Chapter5まではオフラインで動くゲームでしたが、今回からオンラインで動くように設定していきます。

オンラインで動くように設定するためには以下の2点を設定する必要があります。

  • ゲームを管理するオブジェクトの作成
  • Playerオブジェクトの設定とプレハブ化

 ゲームを管理するオブジェクト

今回のゲームではプレイヤーがログインすると同時にプレイヤーキャラクターのオブジェクトを生成し動けるようにしなければなりません。

なので、プレイヤー接続時に操作するキャラクターを生成するオブジェクトを作成します。

仮にこのオブジェクトの名前をゲームを管理するのでGameManagerと名づけます。

GameManager.csのソースコード

GameManagerに以下のGameManagerScriptをアタッチします。

GameManagerScriptはScene battleが読み込まれた直後に処理が開始されます。

つまり、Scene battleが読み込まれた直後に自プレイヤーを作成します。

Playerオブジェクトの設定とプレハブ化

Playerオブジェクトのオンライン化設定は以下の手順を行います。

  1. PhotonViewコンポーネントを追加します。
  2. PhotonTransformViewを追加します。
  3. PhotonAnimatorViewを追加します。
  4. CharacterControlScriptのUpdate関数までのコードを以下のように変更します。
  5. unitychanのinspectorビューを以下の画像のように設定します。

変更後のCharacterControlScript.csのソースコード

とりあえずここまでで設定は完了です。

次にプレハブ化をします。

プレハブ化(Prefab)

プレハブ化とはあるオブジェクトを再利用したいとき、そのデータをProjectビューに保存しておくことを言います。

今回のunitychanオブジェクトはプレイヤーがゲームに接続したときにGameManagerを通して生成したいのでプレハブ化をしておく必要があります。

プレハブ化の手順は以下の通りです。

  1. HierarchyビューのunitychanオブジェクトをProjectビューのAsset/Resourcesフォルダ内にドラッグ&ドロップ
    (PlayerのプレハブはResourcesフォルダ内直下に置く必要があります)
  2. Hierarchyビューのunitychanオブジェクトを削除(Delete)

これでunitychanのプレハブが完成しました。

最後にこのプレハブをGameManagerのPlayerPrefabにドラッグ&ドロップでセットします。

実際に動かしてみましょう!!

2つのウインドウを開き、それぞれでログインした結果です。

ほんの少しラグがありますが、2キャラが上手く同期できていることがわかります。

次回予告!!

次回は頭上に名前を表示させてみましょう!!

名前が表示されると一気にオンラインゲームっぽくなってきますよ!!

rectangle_l

rectangle_l

-Unity, マルチプレイオンラインゲーム開発

Copyright© Uniblo-ゆにブロ- , 2022 All Rights Reserved.