(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

photonの基本的な流れ【Unity】【photon】


このエントリーをはてなブックマークに追加

photonって何?設定の仕方は?みたいな事は以下の記事で。
iOSでオンラインゲーム開発はじめました【Unity】【photon】 - (:3[kanのメモ帳]


この記事ではphotonでキャラクターを同期していくまでの基本的な流れをまとめていきます。
実際にphotonでキャラクターを同期させた例を先に提示。

Unity Web Player | OnlineTest


A,D,W,Sキーで移動
矢印キーでカメラ操作
真ん中のボタンでゲーム開始(returnか左クリックを連打)

服装はランダム
※音でます!


また、photonの日本語版リファレンスはこちら
【公開】Photon Unity Networking 資料(日本語版)|ニュース|Photon Realtime 日本スペシャルサイト


ルームを作る


まず、photonでいうルームとロビーとは以下のようになります。

ルーム:ゲームを行う部屋
ロビー:ルームの情報を確認する所 ゲーム開始前の待合室的な


とりあえずルームを作ってみます。
スクリプトは以下の通りです。


説明することが無いくらい楽にルームを作れますねw


キャラクターの同期を行う


キャラクター(GameObject)を同期させるためにはPhotonViewが必要になります。
PhotonViewはメッセージ(データ?)を送信するためのスクリプトらしい…ヨクワカッテナイ


またPhotonViewにはObserveを設定する必要があり、今回はNetworkPlayer(自作)を設定しています。
このNetworkPlayerでは同期するためにデータの受け渡しを行います。


注意が必要なのが、Observeには同期したいGameObjectを設定するのでは無く管理するためのスクリプトを設定します。
inspector上でいうとこんな感じ。

f:id:kan_kikuchi:20140513073301p:plain


肝心のNetworkPlayerは以下のようになっています。


現在位置と角度、アニメーションの情報を送受信し、同期を行っています。
ついでアニメーションの管理を行っているPlayerAnimeScriptは以下の通りです。


目下の問題点は

  • stream.ReceiveNextでは同じ型の物を同時に送ったらどうなるのか
  • 指定したルームに入る方法
  • ルームに入れる人数制限の方法

とかですかね〜

追記:問題点調べました