このクラスを使うと、GameObjectのposition(位置)・rotation(回転)・scale(拡大縮小) を同期することができます。このクラスは多くの異なるオプションを提供していて、 データが1秒に2,3回しか送信されないときでも、同期した値をなめらかに 見せることができます。 使い方は、コンポーネントをGameObjectに追加して、 PhotonTransformViewが監視対象コンポーネントの一覧に追加されるのを確認するだけです。 More...
Inherits MonoBehaviour, and IPunObservable.
Public Member Functions | |
void | SetSynchronizedValues (Vector3 speed, float turnSpeed) |
interpolation(補間)モード、またはextrapolation(外挿)モードのSynchronizeValuesを 使用すると、リモートオブジェクトと値が同期されます。移動を記述したスクリプトで 現在の速度(単位:ユニット/秒)と回転速度(単位:角度/秒)を渡す必要があります。 するとリモートオブジェクトがそれを使ってオブジェクトの移動を予測します。 More... | |
void | OnPhotonSerializeView (PhotonStream stream, PhotonMessageInfo info) |
PUNによって1秒あたり数回呼ばれます。それにより、PhotonViewの同期データの読み書きがスクリプトで可能になります。 More... | |
このクラスを使うと、GameObjectのposition(位置)・rotation(回転)・scale(拡大縮小) を同期することができます。このクラスは多くの異なるオプションを提供していて、 データが1秒に2,3回しか送信されないときでも、同期した値をなめらかに 見せることができます。 使い方は、コンポーネントをGameObjectに追加して、 PhotonTransformViewが監視対象コンポーネントの一覧に追加されるのを確認するだけです。
void PhotonTransformView.OnPhotonSerializeView | ( | PhotonStream | stream, |
PhotonMessageInfo | info | ||
) |
PUNによって1秒あたり数回呼ばれます。それにより、PhotonViewの同期データの読み書きがスクリプトで可能になります。
このメソッドは、PhotonViewのObservedコンポーネントとして割り当てられたスクリプトから呼ばれます。 PhotonNetwork.sendRateOnSerializeはこのメソッドの呼ばれる頻度に影響します。 PhotonNetwork.sendRateはこのクライアントがパケットを送信する頻度に影響します。
このメソッドを実装すると、1つのPhotonViewが定期的に同期するデータをカスタマイズできます。 送信される内容と、送信したデータが受信側クライアントでどう使われるか、をコードで定義できます。
ほかのコールバックと異なり、OnPhotonSerializeViewが呼ばれるのは、 (PhotonView.observedとして)PhotonViewに割り当てられているときだけです。
このメソッドを役立てるには、PhotonStreamが不可欠です。それが「書き込みモード」だと クライアントに対してPhotonViewをコントロールします(PhotonStream.isWriting == true)。 「読み込みモード」だとリモートクライアントに対して、コントロール中のクライアントが送信したものを受け取ります。
もしストリームに何か値を書き込むことをスキップしたら、PUNは更新をスキップします。注意して使えば、 帯域幅とメッセージ(これらはRoomあたり/1秒あたりの制限があります)を削減できます。
留意いただきたいのは、OnPhotonSerializeViewは、送信者が何も更新を送信しないなら リモートクライアントに対して呼ばれることはない、ということです。これは「1秒にX回Update()を呼ぶ」のようには使えません。
Implements IPunObservable.
void PhotonTransformView.SetSynchronizedValues | ( | Vector3 | speed, |
float | turnSpeed | ||
) |
interpolation(補間)モード、またはextrapolation(外挿)モードのSynchronizeValuesを 使用すると、リモートオブジェクトと値が同期されます。移動を記述したスクリプトで 現在の速度(単位:ユニット/秒)と回転速度(単位:角度/秒)を渡す必要があります。 するとリモートオブジェクトがそれを使ってオブジェクトの移動を予測します。
speed | オブジェクトの現在の移動ベクトル(ユニット/秒) |
turnSpeed | オブジェクトの現在の回転速度(角度/秒) |