2D Jump And Runデモ
2D Jump And Run Demo
このシーンではPhotonを使って2Dオブジェクトを同期する方法や、位置や物理の更新を組み合わせて同期オブジェクトの動きをスムーズにする方法を説明します。メインキャラクターには2つのコンポーネント:PhotonTransformView
とPhotonRigidbody2DView
が適用されます。PhotonTransformViewの詳細はRPG Movement Demoで確認できます。
PhotonRigidbody2DView
の簡単なインスペクターからオブジェクトの速度や角速度を同期させることができます。これらによってキャラクターが動くので、ローカルクライアントと同じようにリモートクライアントでスムーズな動作が可能になります。
Unityの物理シミュレーションは予測的ではないので、同じ入力でもわずかに異なる結果が出力される場合があります。物理データの同期だけに依存するとそのわずかな違いが蓄積されて他に接続しているクライアントのシミュレーションが同期できなくなります。それを防ぐために、PhotonRigidbody2DView
とPhotonTransformView
を組み合わせて使います。PhotonTransformViewは実際の正しい位置を定期的に送ります。PhotonRigidbody2DView
の速度は位置アップデート間の動きをスムーズにします。
速度を同期することにより、キャラクターがレベルオブジェクトにぶつかった際に適用される衝撃力が適切か確認できます。
シーンで生成される物理キューブでデモンストレーションすることが可能です。
補足
いくつかのコリジョンボックスは、複数の赤いタイル(上に立つことのできるタイル)を覆っています。すべての赤いタイルに個別のコライダーがあると、キャラクターがボックス間で「動けなく」なり、動きがぎこちなくなります。
コライダーは少ない方がパフォーマンスは向上します(このデモには関連しません)。
Back to top