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

このクラスで、Physics(物理)RigidBody(剛体)の速度ベクトル(velocity)を 同期することができます。知ってほしいことですが、速度ベクトルのみを同期するのは Unityの物理エンジンが決定論的ではない(どのコンピューターでも常に同じ結果になる わけではない)からです。実際のオブジェクトの位置は同期されないかもしれません。 オブジェクトの位置をどのクライアントでも同じにしたいなら、 PhotonTransformViewも追加して、位置を同期するとよいでしょう。 使い方は、コンポーネントをGameObjectに追加して、 PhotonRigidbodyViewが監視対象コンポーネントの一覧に追加されるのを確認するだけです。 More...

Inherits MonoBehaviour, and IPunObservable.

Public Member Functions

void OnPhotonSerializeView (PhotonStream stream, PhotonMessageInfo info)
 PUNによって1秒あたり数回呼ばれます。それにより、PhotonViewの同期データの読み書きがスクリプトで可能になります。 More...
 

Detailed Description

このクラスで、Physics(物理)RigidBody(剛体)の速度ベクトル(velocity)を 同期することができます。知ってほしいことですが、速度ベクトルのみを同期するのは Unityの物理エンジンが決定論的ではない(どのコンピューターでも常に同じ結果になる わけではない)からです。実際のオブジェクトの位置は同期されないかもしれません。 オブジェクトの位置をどのクライアントでも同じにしたいなら、 PhotonTransformViewも追加して、位置を同期するとよいでしょう。 使い方は、コンポーネントをGameObjectに追加して、 PhotonRigidbodyViewが監視対象コンポーネントの一覧に追加されるのを確認するだけです。

Member Function Documentation

void PhotonRigidbodyView.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.