Unity

【Unity】オンラインFPSゲームの作り方#2【Photonサーバーにログイン&ルーム参加】

本記事内には、アフィリエイトリンクを含む場合があります

前回、2つのシーンを作りました。

【Unity】オンラインFPSゲームの作り方#1【デモとアセットの準備】本記事では、Unityを用いたオンラインで遊べるFPSゲームの作り方を紹介していきます。 これに従えば、次のようなゲームが作れます...

本記事では、
その1つの”LauncherScene”というサーバーログインを完成させます。

オンラインで対戦するには、
まず共有サーバーに接続し、ログインしなければなりません。

そのためのシーンですが、
特別な機能をもったロビーやルームを作成する必要はありません。

ここでは、シンプルな方法で実装します。
ログインした人は、皆同じルーム、同じゲームシーンで戦ってもらいます。

個々にルーム作成し、それぞれ条件を設定するようなロビーを作りたい場合は、
以下の記事をご参考ください。

【Unityでオンラインゲーム】Photonサーバーを用いたルーム・ロビーの作り方【即使えるコードも公開】Unityでは、個人でもオンライン対戦ゲームを作ることができます。 特に、ここでは”Photon”というサーバーを用いる方法を紹介...

1.オブジェクトの作成

1-1.ログイン画面

LauncherSceneに、UIの「Panel」を作成します。
(LoginPanelと名付ける)

その配下に、同じくUIの「InputField」「Button」を作成します。
(Panelを右クリックしてUIから作成)

「InputField」はプレイヤーの名前を入力するため、
「Button」はそれをサーバーに送信するためのものです。

なお、Button配下にあるTextには、Loginという内容に変えます。

 

1-2.接続中を示す画面

同様に「Panel」を作成し、その配下に「Text」を作成します。
内容は「Connecting ...」で良いでしょう。

サーバーに名前が送信され、ログインが成功するまで、この画面を表示させます。

 

1-3.ゲームを始める画面

最後に、ルームに入ってゲームを始める画面を作成します。

「Panel」を作成し、配下に「Button」を設置します。
一応ルームに入る前の段階なので、"LobbyPanel"とでも名付けましょう。

冒頭で述べたように、複数のルームが存在することなく、
ただ1つのルームで遊ぶゲームです。

もし自分が初めのプレイヤーでルームがまだ作成されていない場合は、
ルームを自動で作成して入室する
という処理が走るように設計する予定です。
そして、以降のプレイヤーは、そのルームを検出して、入室することになります。

※これをPhotonの用語では、JoinAndCreateRoomです。
「あったら入り、なければ作る」クイックプレイを実装する際に使われるメソッドです。

2.サーバー処理を行うスクリプトの作成

シーンに必要なオブジェクトが作られたということで、
次に、これらのPanelやButtonが機能するようにコーディングします。

Assetsフォルダ内に「Scripts」というフォルダを作り、
そこに「LauncherManager.cs」という名のC#Scriptを作成します。

スクリプトの内容は、次の通り。

LauncherSceneに
空のゲームオブジェクトを作り(「--LauncherManager--」を名付ける)、
そこに、LauncerManager.csをアタッチします。

すると、
publicで宣言したPanelやInputFieldを紐づけられるようになっているので、対応するオブジェクトを紐づけさせます。

次に、LoginのButton、StartのButtonの「OnClicked()」を設定します。
「+」を押し、LauncherManagerを紐づけ、
そのLauncherManager.csを選び、その中のメソッドを選択します。

選択するメソッドは
Loginの
Button ConnectToPhotonServer()
StartのButton JoinRandomRoom() 

ここまでくれば、「Ctrl」+SキーでSceneの内容を保存します。

再生ボタンよりゲームを実行してみて、
ログインできるか、
StartButtonをクリックすればGameSceneに移るか、確認しましょう。
(Scene in Buildに2つのシーンを入れてあること【#1の最後の方に解説済み】)

もしエラーが起きた場合は、
Debug.Log("任意の分");
というコードをメソッドの中に挿入してみて、
読まれていない箇所を探して、改善しましょう。

 

それでは、次の記事でゲームシーンを実装していきます!

【Unity】オンラインFPSゲームの作り方#3【ゲームシーンの構築】本記事では、GameSceneの構築、 ステージや配置するオブジェクトを作成する方法を解説していきます。 1.シーンの構築 1-1...
ABOUT ME
いなも@システマライフハッカー
”仙豆”を開発することを夢見て、健康食品会社で働いていたものの、2016年に出会ったロシアの武術”システマ”こそ、その糸口があると感銘し、勝手にシステマ普及活動を始める。 一方で、クリエイティブなモノ作りが好きで、DX社会で楽しみを見出せる"Unity”を活かして、”スマートかつ快適な暮らし”のヒントを発信している。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA