HIROMARTBLOG

Unity、Cocos2d-xのこととか書けたらいいですね。

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~サーバーへの接続~

   

前回の記事でPhotonCloudに繋がっている事が確実にわかったと思います。

今回は、実際にどのようなコードでサーバーに接続するのか、そういったことを書いていきます。

ゲーム自体は、Unity公式キャラであるユニティちゃんの2Dゲームを使わせてもらいます。

準備

インポート

まずは、使うゲームをインポートしましょう。

ユニティちゃんのサイト(http://unity-chan.com/)から「ユニティちゃん 2Dデータ ver:1.1」をダウンロードしてください。

PhotonCloud_18

ダウンロードしたものをUnityにインポートしてください。

Sceneのコピー

このAssetには、マリオのユニティちゃんバージョンのゲームが同梱されています。

そのゲームをPhotonCloudを使って、2P対応するというのが最終目標です。

なので、使われているゲームSceneをコピーしてそれにPhotonCloudのシステムを追加していきます。

コピーするSceneは、

PhotonCloud_19

[UnityChan2D]→[Demo]→[Scenes]→[World 1-1]です。

コピーの方法は、[World 1-1]を開いてもらって名前をつけて保存で先ほどと違う場所に保存してもらえればいいと思います。

PhotonCloud_20

コピーした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_21

まとめ

今回で、これらか使う素材の準備とPhotonCloudへの接続の方法を書いていきました。

次回は、オンラインで同期するゲームオブジェクトの生成方法を書いてきます。

では。

 

 

 

ユニティちゃんライセンス

このアセットは、『ユニティちゃんライセンス』で提供されています。このアセットをご利用される場合は、『キャラクター利用のガイドライン』も併せてご確認ください。

 - PhotonCloud, Unity , , , , ,

広告

広告

Message

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

*

  関連記事

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~細かな設定~

前回までで、だいたいのゲームシステムは出来たいと思います。 今回は、細かな設定を …

Unityで作ったアプリをケーブルでAndroid実機で動かす方法

個人でUnityを使って作ったゲームを実機で動作するのかを試したい時ってあります …

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~オブジョクトの同期~

前回の記事では、同期するオブジョクトの生成を行ってもらいました。 今回は、オブジ …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~弾の作成とそれのPrefab化~

前回の記事では、宇宙戦闘機を動かすところまでやったと思います。 今回は、その宇宙 …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~ゲームスタートボタン・リセットボタンの設置~

前回までで、ゲームのシステムがほぼ出来ました。 自機を動かす事、敵を生成する事、 …

3Dシューティングゲームを公開

前回までで紹介してきた「プログラミング初心者でも簡単!Unity5で3Dシューテ …

簡単オンラインゲーム開発!!UnityとPhotonCloudで簡単実装~カメラを追随させる~

前回の記事でアニメーションの同期を行いました。 今回の記事では、カメラをそれぞれ …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~衝突判定の設定2~

前回の記事の最後で言っていた、敵の弾が宇宙戦闘機に衝突した時の処理を今回書いてい …

Unity5にVisual Studio Tools for Unity ( UnityVS ) を追加する方法

最近リリースされた、Unity5では、今までのUnity4.6などと同じ方法では …

プログラミング初心者でも簡単!Unity5で3Dシューティングゲーム開発!!~プロジェクトの作成とUnityの設定~

ゲームを作りたいなぁと思っても、プログラミングって難しそうだし、絵とか3Dモデル …