Photon Unity Networking  v1.84
English | 日本語 | 한국
Public Member Functions | List of all members
PhotonTransformView Class Reference

このクラスを使うと、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...
 

Detailed Description

このクラスを使うと、GameObjectのposition(位置)・rotation(回転)・scale(拡大縮小) を同期することができます。このクラスは多くの異なるオプションを提供していて、 データが1秒に2,3回しか送信されないときでも、同期した値をなめらかに 見せることができます。 使い方は、コンポーネントをGameObjectに追加して、 PhotonTransformViewが監視対象コンポーネントの一覧に追加されるのを確認するだけです。

Member Function Documentation

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を 使用すると、リモートオブジェクトと値が同期されます。移動を記述したスクリプトで 現在の速度(単位:ユニット/秒)と回転速度(単位:角度/秒)を渡す必要があります。 するとリモートオブジェクトがそれを使ってオブジェクトの移動を予測します。

Parameters
speedオブジェクトの現在の移動ベクトル(ユニット/秒)
turnSpeedオブジェクトの現在の回転速度(角度/秒)