Unity

【Unity】Photonを用いたサーバーログインシステムの作り方【シンプル設計】

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

先日、オンラインゲームのログインシステムを紹介しました↓

【Unityでオンラインゲーム】Photonサーバーを用いたルーム・ロビーの作り方【即使えるコードも公開】

おおまかにPhotonのサーバーに関する知識がわかったと思いますが、
もっとシンプルなものにカスタマイズする方法を、
ここではいくつか紹介していきます。

案①:ログイン後、全員1つのルームに入って即ゲーム(オープンワールド向け)

案②:後日追加予定・・・

案①:ログイン後、全員1つのルームに入って即ゲーム

シーンに準備するオブジェクトは、大きく3つのPanel。

a.ニックネームを入れてログインする画面(LoginPanel)
  子要素:
  ・InputField(ニックネーム入力)
  ・Button( ConnectToPhotonServer()を呼び出す)

b.接続中を示す画面(ConnectingPanel)
子要素:
・Text(Connecting...を表示)

c.接続完了後、クイックスタートする画面(QuickStartPanel)  
子要素:
・Button(JoinRandomRoom()を呼び出す)

本ログインシステムで使用するメソッドとコーディングで処理させる内容
#Unity Methods
・private void Start()

 PhotonNetwork.AutomaticallySyncScene = true;
 LoginPanelを SetActive(true) にする

#Public Methods
public void ConnectToPhotonServer()(仮名)←Loginボタンで呼ぶ
 PhotonNetwork.LocalPlayer.NickNameという変数に、
 InputFieldのtextを部分を入れる
   PhotonNetwork.ConnectUsingSettings()を呼ぶ

public void JoinRandomRoom()(仮名)←QuickStartボタンで呼ぶ       

  PhotonNetwork.JoinRandomRoom()を呼ぶ

#Photon Callbacks
・public override void OnConnectedToMaster()
 PhotonNetwork.ConnectUsingSettings()が呼ばれたら作動します

 CnnectingPanelを SetActive(true)にする

・public override void OnJoinRandomFailed(short returnCode, string message)

 CreateAndJoinRoom()を呼ぶ
 ※参加するルームがなければ自動作成させるため

・public override void OnJoinedRoom()

 PhotonNetwork.LoadLevel("○○")でゲームシーンに移動する

#Private Methods
 
void CreateAndJoinRoom()
 自動作成するルーム設定(roomNameやroomOptions)を記載し、 
 PhotonNetwork.CreateRoom(roomName, roomOptions)を呼ぶ

以上、
これらのコードを書いたScriptを
シーンの空のゲームオブジェクトにアタッチすれば出来上がります。

【参考】コード内容

案①のコード内容は、このようになっています。

参考まで^^

ABOUT ME
いなも@システマライフハッカー
”仙豆”を開発することを夢見て、健康食品会社で働いていたものの、2016年に出会ったロシアの武術”システマ”こそ、その糸口があると感銘し、勝手にシステマ普及活動を始める。 一方で、クリエイティブなモノ作りが好きで、DX社会で楽しみを見出せる"Unity”を活かして、”スマートかつ快適な暮らし”のヒントを発信している。

COMMENT

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

CAPTCHA