対戦カードゲームをunityとc#で作りたい:photon ネットワーク編(5)

Githubソースコード公開&まとめ

 

カードゲームの作り方を考えていきたいと思います。

カードを双方のプレイヤーに配りたいと思うのですが、そのためにはネットワーク対戦を実現する必要があります。

今回はその下準備をしたいと思います。

前回でカードをシャッフルするところまではできました。

対戦ゲームですので、当然ネットワークを利用して作るという事になりますが、そこで色々調べたところphoton networkという対戦ゲーム用のサービス/アセットがあり、それを利用することにします。

詳しくは下記リンクをご参照ください。

PUNを使ってネットワーク同期を行う -Vol.1-

まず、上記のリンクで説明がある通り、App IDを取得し、Photon Unity Networking Classic - FREEのアセットをダウンロードします。

 

 

インポートするとセットアップのウィンドウが立ち上がります。ここに取得したAppIDをコピペします。

 

 

インスペクター上でprefferedRegionにjpを選択。

 

 

セットアップは以上です。

 

次に部屋に入るためのスクリプトを用意します。NetworkManager.csを作成し、下記のFPSを作るためのチュートリアルを参考にして進めていきます。

 

 

空のオブジェクトにNetworkManager.csをアタッチし、下記のように付け加えます。textを使用するので、using UnityEngli.UIというのを追加する必要があるようです。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI; //text 使うので

public class NetworkManager : MonoBehaviour {

    [SerializeField] Text connectionText;
    [SerializeField] Transform[] spawnPoints;

    GameObject player;

 

[serializeField]というのはインスペクター上で使用するけれども、publicにしないという意味だそうです。

spawnPointsはチュートリアル上ではプレイヤーの初期位置の取得に使うダミーのオブジェクトです。今回のカードゲームでは手札を配る初期位置として使う予定です。

 

下記をさらに、NetworkManager.csに付け加えます。部屋に入るために必要な情報です。

 

  void Start()
    {
        PhotonNetwork.logLevel = PhotonLogLevel.Full;//情報を全部ください
        PhotonNetwork.ConnectUsingSettings("0.1");
    }

    void Update()
    {
        connectionText.text = PhotonNetwork.connectionStateDetailed.ToString();//その情報をテキストに流します

    }

    void OnJoinedLobby()
    {
        RoomOptions ro = new RoomOptions() { isVisible = true, maxPlayers = 2 };//maxPlayerは人数の上限
        PhotonNetwork.JoinOrCreateRoom("Tomo", ro, TypedLobby.Default);//""内は部屋の名前

    }

 

ヒエラルキービューでテキストを作成し左下に位置を調整します。そして、インスペクター上でNetworkManagerのTextの項目にドラッグアンドドロップします。

これで、プログラムを走らせると、部屋に入れるはずですが、何故かconnected to Masterから先に進みません。

 

 

そこで調べてみると、”You need to check "Auto-Join Lobby" in the PhotonServerSettings.”ということで、セッティングをチェックしてみます。

 

Why am I stuck in ConnectedToMaster in Photon Free

 

 

AutoJoinLobbyのチェックボックスをオンにしたら、無事部屋に接続できました。左下にJOINEDという文字があるのが分かります。これで、部屋に接続することが出来たので、カードを配る準備ができました。

 

 

もしよろしければ、Photonについて私が知りえる限りの情報を徹底的にまとめてみたので、下記の記事も読んで下さいね!

 
おすすめの記事