オンラインゲームを作りたい2

こんばんは。VyseArt(ヴィシェアート)のプログラム担当トナカイです。

 

Unityゲームジャムが終了しましたね。私達もゲームを作って参加して、2日~数日間でこしらえた割には、個人的にはよい評価をもらえたと思っています。

 

unityroom.com

 

今はPhotonのオンラインゲームを作る学習をしています。

その学習で圧倒的に役に立ったサイトがあります。うら干物書きさんのサイトです。

www.urablog.xyz

 

大変勉強になりました。本当にありがとうございます。

このサイトの#01~#05まで学習して、Photonのネットワーク接続からロビー入室、ルーム作成、入室まで進むことができました。

 

Photonを知りたければまずこのサイトを読むこと、わからなければ写経することもいいと思います(私は#05まで自分なりに写経しました)。

 

そして、私がやりたかったことは、まず『ルームに入室するまでにプレイヤーごとにタグをつけて役割を分けること』でした。

 

そもそもは(このブログでは)チャットゲームを作りたくて、話し手と聞き手、その他のオーディエンスという風に作りたいのですが、Photonで何をどうしたらいいかわかりませんでした。

 

それを、うら干物書きさんのサイトを読んで、オンラインの接続の仕方、ルームの作り方などを理解して、その後自分なりにルームを作成してみました。

f:id:odekakeneko:20190325222824p:plain

 

ボタンを押すと、話し手と聞き手、その他オーディエンスという風にタグ付けされて次のシーンへ進みます。

f:id:odekakeneko:20190325223733p:plain

できました!

ここで時間がかかった点は、『自身のプレイヤーと他人のプレイヤーを(タグ付けするため)特定して、タグをつけていくこと。』

 

この自身のプレイヤーに関してですが、

photonView.GetComponent<PhotonPlayer>().IsMasterClient

とGetComponentをやりがちなのですが、インターフェースを実装したものをGetComponentしていますと(怒られる)ので、違う方法で取得します。

 

Photonにおける自身のプレイヤーの取得方法は

PhotonNetwork.playerを用います。

 

また、他人のプレイヤーを特定する方法ですが、

foreach (PhotonPlayer p in PhotonNetwork.playerList)

などとして、PhotonNetwork.playerListで取得することができます。

 

そして、タグをつけていくこと、に関しては、

SetCustomPropertiesという、カスタムプロパティというものを使えばよいです。

 

JSでの書き方はこちら

C#での書き方はこちらに掲載されていました。

 

このようにして、部屋の入り方と、タグのつけ方を学んだ次第です。

Photonのドキュメントなども読むと、これからいろいろとできそうだなと思いました。

 

次回は、これからチャットゲームを作り進めていって、チュートリアルみたいなものを作りたいです。

また、現在「御筆るいの都内某所しっそう記3」という続き物のゲームを製作中でして、そちらの制作が優先されるかもしれません。

 

トナカイ