フィルター
Use filters to determine whether to execute a trigger and avoid unnecessary trigger execution.
読み終わるまでの所要時間 2 分最終更新 23日前
フィルターを使用して、トリガーを実行するかどうかを決定し、トリガーの不必要な実行を回避できます。フィルターは、トリガーの設定の
filter
フィルターは、トリガーの設定の
filtertruemy-leaderboardトリガーは、イベントペイロードを入力として使用します。イベントペイロードは、イベントに関連するデータが含まれる JSON オブジェクトです。例えば、{ "name": "reset-another-leaderboard", "eventType": "com.unity.services.leaderboards.reset.v1", "actionType": "cloud-code", "actionUrn": "urn:ugs:cloud-code:test-script", "filter": "data['leaderboardId'] == 'my-leaderboard'"}
com.unity.services.leaderboards.reset.v1{ "leaderboardId": "my-leaderboard", "leaderboardVersionId": "20230213175322850781977"}
CEL 構文
フィルターは、Google Cloud 製品で使用される式言語である CEL (Common Expression Language) で記述する必要があります。CEL の詳細については、言語定義 を参照してください。 以下のサンプルは、フィルターで使用できる一般的な CEL 式の一部を示しています。Equality (等値)
フィールドが特定の値と等しい場合に、フィルターを true に設定できます。これらのフィルターを使用すると、渡されたパラメーターが特定の値であることを確認できます。 例えば、以下のフィルターを使用して、leaderboardIdmy-leaderboarddata['leaderboardId'] == 'my-leaderboard'
正規表現
正規表現を使用して、フィールドをパターンと照合できます。例えば、以下のフィルターを使用して、leaderboardIdtiered-leaderboard#data['leaderboardId'].matches('^tiered-leaderboard#.*')
ネストされたフィールド
ネストされたフィールドを持つフィルターを使用できます。例えば、スクリプトまたはモジュールのパラメーターが以下のようであるとします。以下のフィルターを使用して、{ "inventory": { "primaryWeapon": "sword", "secondaryWeapon": "bow" }}
inventory.primaryWeaponsworddata['inventory']['primaryWeapon'] == 'sword'
論理演算子
論理演算子を使用して、複数の式を組み合わせることができます。 例えば、以下のフィルターを使用して、プレイヤーにクエストを発行するタイミングを決定できます。プレイヤーがレベル 5 に達したとき、またはプレイヤーがcollectWoodbuildFence(data['currentQuest'] == 'buildFence' && data['lastQuest'] == 'collectWood') || data['level'] == 5
型の不一致
イベントペイロードの値の型がフィルター内の値の型と一致しない場合、フィルターはログにエラーメッセージを返し、トリガーは実行されません。 例えば、以下のフィルターは、Cloud Save イベントペイロードに 5 より大きいvaluedata['value'] > 5
data['value']stringvalue型のキャスト
イベントペイロード内の値の型を別の型にキャストできます。これにより、型の不一致エラーを回避できます。例えば、数字である文字列値を渡す場合、それを数値にキャストし、数値を期待するフィルターで引き続き使用できます。ただし、int(data['value']) > 5
data['value']