ゲームロジックとARイベントARDKの機能を使用して作った、ARマルチプレイヤー版『Pong』のUnityプロジェクト例です。このチュートリアルでは、プロジェクトを正しく機能させるためのUnity上での各ステップやC#スクリプトの使用法をご確認いただけます。この使用例では低レベルメッセージを使ってプレイヤー間のデータ送信を行っています。ゲームロジックとARイベントセッションとゲームオブジェクトがすべて作成されたので、いよいよゲームロジックに移ります。基本的な移動や衝突のロジックとスコアの更新のみを処理します。一貫性を保つために、ゲームのほとんどのオブジェクトやステータスを操作できるのはホストのみです。それに対し、その他のピアはホストから送信されたメッセージをリッスンする必要があります。スコアが更新された後、スコアを更新するように、非ホストのコントローラーにもメッセージが送信されます。ボールの位置は、ホストのみ操作することができます。その位置を含むメッセージが非ホストのプレイヤーに送信されます。呼び出し、非ホストプレイヤーのためにボールの位置を設定します。関数はフレームごとに呼び出されるUnityイベントです。どちらのプレイヤーも同期されているものの、ゲームが開始されていない場合は、ホストがヒットテストを実行し、検出された平面上にゲームオブジェクトをスポーンすることができます。ゲーム開始後は、フレームごとに、ボールとプレイヤーのアバターとの距離を計算し、両者が衝突した場合(両者の半径は0.25m、衝突は0.5m以下)は、ボールをヒット角度に応じた方向にバウンドさせます。プレイヤーがホストである場合、ヒットは即座に実行されます。それ以外の場合は、ホストにヒットを実行させるためのヒットベクトルを含むメッセージがホストに送信されます。最近ヒットしたフィールドとヒットがロックアウトしたフィールドは、複数のヒットメッセージが連続して送信されるのを防ぐために使用されます。イベントをサブスクライブします。オブジェクトに存在し、シングルプレイヤーのARセッションでも利用できます)。位置を抽出するために使用されます。相手の位置を取得するために使用されます。イベントは、ローカルピアと、同じセッションのそれ以外のピアの両方の同期状態の更新時に発生します。破棄するための初期化イベントと破棄イベントがあります。}}BallBehaviourボールの動作に移ります。このスクリプトはBallプレハブにアタッチされ、ボールがインスタンス化される際に作成されます。ほとんどの場合、このスクリプトは純粋なゲームロジックであり、ARDKとはあまり関係がありません。ボールの位置はフレームごとに更新され、メッセージとして非ホストに送信されるため、これらのメソッドのほとんどを呼び出すことができるのはホストのみです。パラメーターについて説明しますが、ほとんどがゲーム上級者を対象としています。ボールをスポーンする位置はキャッシュに保存され、目標に到達するたびにフィールドの中心に戻されます。よって呼び出されます。よって呼び出されます。これにより、ボールは適切な方向にバウンドし、速度は10%増加します。フレームごとに呼び出され、速度をもとにボールの位置を更新します。使用して、ボールの位置を非ホストのプレイヤーに送信します。ボールが境界を越えた場合は、次のフレームで境界内に収まるように正しい速度を反転します。ボールがゴールに入るたびに呼び出されます。メソッドが呼び出され、スコアを更新するメッセージが非ホストに送信されます。