前回の記事でPhotonCloudに繋がっている事が確実にわかったと思います。
今回は、実際にどのようなコードでサーバーに接続するのか、そういったことを書いていきます。
ゲーム自体は、Unity公式キャラであるユニティちゃんの2Dゲームを使わせてもらいます。
準備
インポート
まずは、使うゲームをインポートしましょう。
ユニティちゃんのサイト(http://unity-chan.com/)から「ユニティちゃん 2Dデータ ver:1.1」をダウンロードしてください。
ダウンロードしたものをUnityにインポートしてください。
Sceneのコピー
このAssetには、マリオのユニティちゃんバージョンのゲームが同梱されています。
そのゲームをPhotonCloudを使って、2P対応するというのが最終目標です。
なので、使われているゲームSceneをコピーしてそれにPhotonCloudのシステムを追加していきます。
コピーするSceneは、
[UnityChan2D]→[Demo]→[Scenes]→[World 1-1]です。
コピーの方法は、[World 1-1]を開いてもらって名前をつけて保存で先ほどと違う場所に保存してもらえればいいと思います。
コピーしたSceneの名前は、なんでもいいですがここでは、[PhotonWorld 1-1]とします。
Photonへの接続
コピーした[PhotonWorld 1-1]Scene内に空のオブジョクトを作って「PhotonManager」としてください。
また、「PhotonSystem」というソースファイルを作成してください。
</pre> using UnityEngine; using System.Collections; public class PhotonSystem : Photon.MonoBehaviour { /// マスターサーバーのロビーに入るに呼び出されます。 void OnJoinedLobby() { Debug.Log("ロビーに入室"); //ランダムにルームへ参加 PhotonNetwork.JoinRandomRoom(); } /// 部屋に入るとき呼ばれます。 /// これは参加する際だけでなく作成する際も含みます。 void OnJoinedRoom() { Debug.Log("部屋に入室"); } /// JoinRandom()の入室が失敗した場合に後に呼び出されます。 void OnPhotonRandomJoinFailed() { Debug.Log("部屋入室失敗"); //名前のないルームを作成 PhotonNetwork.CreateRoom(null); } void Awake() { //マスターサーバーへ接続 PhotonNetwork.ConnectUsingSettings("v0.1"); } }
コードはこれです。
27行目からあるAwake関数で、マスターサーバーへ接続しています。
この引数がゲームバージョンになるようです。
そして、サーバーら接続出来たら、ロビーに入ります。
その時に呼ばれるのが8行目からあるOnJoinedLobby()です。
その中で、ランダムにルームへ参加するPhotonNetwork.JoinRandomRoom()を呼びます。
もし、1つもルームがなければ21行目のOnPhotonRandomJoinFailed()が呼ばれます。
今は、部屋がないので呼ばれると思います。
次に、部屋がなければ作成しなければいけないので作成します。
それが、OnPhotonRandomJoinFailed()内で呼ばれているPhotonNetwork.CreateRoom()です。
この引数て、部屋名や参加人数などが設定できます。
それは、また違う記事で書きたいと思います。
部屋の作成に成功し、入室にも成功すると16行目のOnJoinedRoom()が呼ばれます。
「PhotonSystem」を「PhotonManager」に追加して実行してみてください。
ログが下記のようになれば大丈夫です。
まとめ
今回で、これらか使う素材の準備とPhotonCloudへの接続の方法を書いていきました。
次回は、オンラインで同期するゲームオブジェクトの生成方法を書いてきます。
では。
このアセットは、『ユニティちゃんライセンス』で提供されています。このアセットをご利用される場合は、『キャラクター利用のガイドライン』も併せてご確認ください。
コメント