photonって何?設定の仕方は?みたいな事は以下の記事で。
iOSでオンラインゲーム開発はじめました【Unity】【photon】 - (:3[kanのメモ帳]
この記事ではphotonでキャラクターを同期していくまでの基本的な流れをまとめていきます。
実際にphotonでキャラクターを同期させた例を先に提示。
https://dl.dropboxusercontent.com/u/52702985/unity/OnlineTest/Web.html
A,D,W,Sキーで移動
矢印キーでカメラ操作
真ん中のボタンでゲーム開始(returnか左クリックを連打)服装はランダム
※音でます!
また、photonの日本語版リファレンスはこちら
http://photoncloud.jp/info/detail.php?no=1389939840
ルームを作る
まず、photonでいうルームとロビーとは以下のようになります。
ルーム:ゲームを行う部屋
ロビー:ルームの情報を確認する所 ゲーム開始前の待合室的な
とりあえずルームを作ってみます。
スクリプトは以下の通りです。
説明することが無いくらい楽にルームを作れますねw
キャラクターの同期を行う
キャラクター(GameObject)を同期させるためにはPhotonViewが必要になります。
PhotonViewはメッセージ(データ?)を送信するためのスクリプトらしい…ヨクワカッテナイ
またPhotonViewにはObserveを設定する必要があり、今回はNetworkPlayer(自作)を設定しています。
このNetworkPlayerでは同期するためにデータの受け渡しを行います。
注意が必要なのが、Observeには同期したいGameObjectを設定するのでは無く、管理するためのスクリプトを設定します。
inspector上でいうとこんな感じ。
肝心のNetworkPlayerは以下のようになっています。
現在位置と角度、アニメーションの情報を送受信し、同期を行っています。
ついでアニメーションの管理を行っているPlayerAnimeScriptは以下の通りです。
目下の問題点は
- stream.ReceiveNextでは同じ型の物を同時に送ったらどうなるのか
- 指定したルームに入る方法
- ルームに入れる人数制限の方法
とかですかね〜
追記:問題点調べました