필터
Use filters to determine whether to execute a trigger and avoid unnecessary trigger execution.
읽는 시간 1분최근 업데이트: 한 달 전
필터를 사용하여 트리거 실행 여부를 결정하고 트리거가 불필요하게 실행되지 않도록 방지할 수 있습니다. 트리거 구성의
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']