CloudScript の基本
CloudScript を最大限に活用するためのカギは、利用可能な入力 (つまり、ハンドラーの args と context) をどのように扱うかを知ることです。 たとえば、以下は、すべての新しく作成されたタイトルで Revision 1 として読み込まれるスタート CloudScript のhelloWorld の例です (GitHub でも入手可能、こちら)。
inputValue で渡された引数をチェックし、そのキーの値を実行のデバッグ ログ情報で返されるテキストの一部として使用します。
context 入力パラメーター
ただし、Rule (Automation -> Rules)、Segment Enter/Exit Action (Players -> Segments)、または Task Service (Automation -> Tasks) を介した PlayStream 内のイベントの結果として CloudScript を呼び出すこともできます。 その場合、関数に渡される context は、適切なアクションを取るために必要なすべての情報を提供します。 PlayStream イベントの仕組みの基本について読むには、ブログ Introducing PlayStream を参照してください。PlayStream イベントの種類とそのプロパティのリストについては、PlayFab API リファレンス を参照してください。 このアクションを確認するには、同じサンプル CloudScript のhandlePlayStreamEventAndProfile ハンドラーを見てください。
-
上記のサンプル コードで見られる
playStreamEventがあります。playStreamEventには、PlayStream イベント ドキュメント にあるすべてのパラメーターと共に、ハンドラーをトリガーした完全なイベントが JSON オブジェクトとして含まれます。たとえば、タイトルで任意のplayer_logged_in eventに対してhandlePlayStreamEventAndProfileを呼び出すルールを設定した場合、playStreamEvent.EventNameはplayer_logged_inなどになります (そのイベントのパラメーターの完全なセットはこちら)。 -
次に、前の例にも示されている
playerProfileがあります。これには、イベントをトリガーしたプレイヤーに関する情報が含まれます。プロファイル パラメーターの詳細はここで見つかりますが、他の情報の中でも、タイトル内のプレイヤーの完全な統計セット、およびプレイヤーに割り当てたカスタム タグが含まれるため、そのデータを豊富な意思決定に使用できます。 -
コンテキストの最後の要素は
triggeredByTaskです。Rule および Segment Enter/Exit トリガーを使用する際に設定される最初の 2 つとは異なり、triggeredByTaskはハンドラーがタスクの結果として (手動またはタイマーで) 実行されている場合にのみ適用されます。パラメーターは 2 つだけです:
- Name - タスクを作成したときに指定した一意の名前。
- ID - PlayFab が自動的に生成したタスクの一意の識別子。
playerProfile もありますが、playStreamEvent はありません。
セグメントなしでゲームに対して単に実行されるタスクの場合、意図はイベントのタイトル データを設定するなど、より一般的なものを実行することであるため、playerProfile はありません。
したがって、name は、実行する適切なアクションを決定するためにハンドラーのコード フローで使用する要素です。
PlayStream と CloudScript の組み合わせ
多くの点で、PlayStream アクションによってトリガーされる CloudScript ハンドラーは、ExecuteCloudScript への直接呼び出しによってトリガーされるものよりもさらに多くの潜在的な機能を持っています。コンテキストを介して提供される豊富なデータ セットがあるためです。
これにより、当初予期していなかったイベントやプレイヤー プロファイルの要素を活用する より多くの ロジックでハンドラーを起動後に更新でき、クライアント コードを更新する必要は ありません。
さらに、PlayFab サービスの将来の更新でプレイヤー プロファイルへの追加を継続し、サーバー サイド ロジックのための さらに多くの オプションを提供します。