オブジェクトプールが実装すべきメソッドを定義しています。PUNで使うことができます。 More...
Public Member Functions | |
GameObject | Instantiate (string prefabId, Vector3 position, Quaternion rotation) |
これはPUNがPrefabの新しいインスタンスを生成したい時に呼ばれます。PhotonViewを伴った有効なGameObjectを返さなければなりません。 More... | |
void | Destroy (GameObject gameObject) |
これはPUNがPrefabのインスタンスを削除したい時に呼ばれます。 More... | |
オブジェクトプールが実装すべきメソッドを定義しています。PUNで使うことができます。
インスタンス化のためにオブジェクトプールを使うには、PhotonNetwork.ObjectPoolに設定してください。 ObjectPoolがNULLではない、すべてのオブジェクトに使われます。 PUNでインスタンス化を呼ばれたら、プールはNULLでない有効なGameObjectを返します。 また、PositionとRotationは値をもたなければなりません。
プールされたGameObjectは通常のAwake()やStart()は呼ばれないことに注意してください。 OnEnable()がPoolより呼ばれますが、呼ばれた時にネットワークの値はまだ更新されていません。 OnEnable()でのPhotonViewの値(isMineなど)は古い値になります。 スクリプトで調整する必要があるかもしれません。
PUNはOnPhotonInstantiate()を呼びます(IPunCallbacksを参照)。 これはネットワークの値や所有者に関して再利用されたオブジェクトの セットアップに使用される必要があります。
void IPunPrefabPool.Destroy | ( | GameObject | gameObject | ) |
これはPUNがPrefabのインスタンスを削除したい時に呼ばれます。
プールはDestroy()で返されたGameObjectの種類を見つけるためにいくつかの方法が必要です。 それはタグや名前、その他である必要があります。
gameObject | 削除したいインスタンス |
GameObject IPunPrefabPool.Instantiate | ( | string | prefabId, |
Vector3 | position, | ||
Quaternion | rotation | ||
) |
これはPUNがPrefabの新しいインスタンスを生成したい時に呼ばれます。PhotonViewを伴った有効なGameObjectを返さなければなりません。
prefabId | PrefabのID |
position | 生成したInstanceのPosition |
rotation | 生成したInstanceのRotation |