Version: 2023.2
언어: 한국어
검색 표현식
커스텀 검색 공급자 만들기

함수 레퍼런스

카테고리별 함수

조작 설정

Expression 설명
distinct
{Variadic | AnyExpression}
여러 표현식의 고유한 세트 집합체를 생성합니다.
except
{Iterable, Variadic | Iterable}
두 시퀀스의 세트 차이를 생성합니다.
first
{Number, Variadic | Iterable}
각 표현식의 첫 번째 결과를 반환합니다.
groupBy
{Iterable, Optional | Selector}
Group search results by a specified @selector | Hints: ExpandSupported
intersect
{No signature}
두 시퀀스의 세트 교차를 생성합니다.
last
{Number, Variadic | Iterable}
각 표현식의 마지막 결과를 반환합니다.
map
{Iterable, AnyValue}
변수를 사용해 새로운 표현식을 형성하기 위해 표현식 결과를 매핑합니다.
select
{No signature}
가져올 값과 프로퍼티를 선택하여 새로운 결과를 생성합니다.
sort
{No signature}
기준에 기반하여 표현식 결과를 정렬합니다.
union
{Variadic | AnyExpression}
여러 표현식의 고유한 세트 집합체를 생성합니다.

필터링 설정

Expression 설명
eq
{Iterable, Selector, Literal | QueryString}
값이 동일한 검색 결과를 유지합니다.
gt
{Iterable, Selector, Literal | QueryString}
값이 더 큰 검색 결과를 유지합니다.
gte
{Iterable, Selector, Literal | QueryString}
값이 더 크거나 동일한 검색 결과를 유지합니다.
lw
{Iterable, Selector, Literal | QueryString}
값이 더 작은 검색 결과를 유지합니다.
lwe
{Iterable, Selector, Literal | QueryString}
값이 더 작거나 동일한 검색 결과를 유지합니다.
neq
{Iterable, Selector, Literal| QueryString}
값이 다른 검색 결과를 유지합니다.
where
{Iterable, Text | Selector | QueryString}
표현식이 유효하지 않은 검색 결과를 제외합니다.

수학

Expression 설명
avg
{Selector, Variadic | Iterable}
각 표현식의 평균값을 찾습니다.
count
{Variadic | Iterable}
표현식의 결과 수를 셉니다.
max
{Selector, Variadic | Iterable}
각 표현식의 최대값을 찾습니다.
min
{Selector, Variadic | Iterable}
각 표현식의 최소값을 찾습니다.
sum
{Selector, Variadic | Iterable}
각 표현식의 합계값을 계산합니다.

유틸리티

Expression 설명
alias
{Iterable, Text | Selector | Iterable}
Assigns an alias to an expression. | Hints: AlwaysExpand
constant
{Literal | Function}
각 표현식의 첫 번째 결과를 반환합니다.
format
{Text | Selector, Variadic | AnyValue}
인수를 문자열로 전환하여 결과에 형식을 지정할 수 있게 합니다.
print
{Text | Selector, Variadic | Iterable}
콘솔에 표현식 결과를 프린트합니다.
query
{No signature}
힌트: ExpandSupported
random
{Variadic | Iterable}
각 표현식의 결과를 무작위로 선택합니다.
set
{Variadic | Iterable}
표현식의 여러 요소를 반환합니다.
text
{No signature}
표현식의 텍스트를 리터럴 문자열로 전환합니다.

함수(알파벳순)

alias

alias{set, aliasName} -> {each element in set gets assigned an aliasName}

alias{set, formatString} -> {each element in set gets assigned an alias computed from the formatString}

이 함수는 표현식에 별칭을 할당합니다. 이는 as 키워드를 사용하는 것과 동등합니다. 별칭 사용도 참조하십시오.

예:

count{t:material as material}는 다음과 동등합니다.

count{alias{t:material, material}}

예:

“number” 별칭을 숫자 1, 2, 3에 할당합니다.

alias{[1, 2, 3], 'number'}

예:

형식 문자열에서 동적으로 계산된 별칭을 1, 2, 3에 할당합니다:

alias{[1,2,3], 'number @value}'}

avg

avg{selector, sets...} -> {Average of selector value in each set}

avg{set...} -> {Average of @value in each set}

각 세트에서 파라미터로 전달된 각 항목의 평균값을 찾습니다.

예:

avg{[1,2,3,4, 5,6], [1, 1, 1], []} -> {3.5, 1, 1}

예:

avg{@size, t:texture, t:material} -> {1100576, 3618}

constant

constant{value} -> {constant value}

값을 상수 리터럴 값(숫자, 문자열 또는 부울)으로 전환하려고 시도합니다. 일부 함수에서 파라미터 타입의 차이를 명확하게 보여주는 데 사용할 수 있습니다.

예:

first{constant{5}, t:material}

count

count{sets...} -> {count of each set}

각 세트에서 파라미터로 전달된 결과의 수를 셉니다.

예:

count{t:texture, t:material} -> {359, 194}

예:

“assets”이라는 이름의 인덱스에서 에셋을 타입별로 그룹화하고 해당 에셋 그룹 각각을 셉니다. 가장 큰 그룹 5개를 가져옵니다.

first{5, sort{count{...groupBy{a:assets, @type}}, @value, desc}}

distinct

distinct{sets...} -> {Unified set of all unique elements in all sets}

Distinct는 파라미터로 전달된 모든 세트에서 찾은 모든 요소의 세트를 만듭니다. 집합체와 마찬가지로 중복되는 요소는 유지되지 않습니다.

예: 이 예에서는 중복 요소가 제거되었음을 확인할 수 있습니다.

distinct{[1,2,3], [3,4,5]} -> {1,2,3,4,5}

예:

distinct{*.mat, t:shader} -> {all materials and shaders in the project}

예:

“project”라는 이름의 인덱스에서 각 에셋의 @type을 선택하고 각 타입의 에셋을 하나씩 유지합니다(중복 요소는 항목의 @value에 따라 계산되므로).

distinct{select{a:project, @type}}

eq

eq{set, value} -> {all elements equal to value}

eq{set, selector, value} -> {all selector value equal to value}

특정한 값과 동일한 요소를 유지하여 여러 요소를 필터링합니다.

예:

eq{[2,4,5,6,4,3], 4} -> {4,4}

이는 다음과 동등합니다.

where{[2,4,5,6,4,3], "@value=4"}

예:

#width 직렬화 프로퍼티가 256인 텍스처를 모두 찾습니다.

eq{t:texture, #width, 256}

이는 다음과 동등합니다.

t:texture #width=256

except

except{set, sets...} -> {New set of elements}

Except는 파라미터로 전달된 어떤 세트에도 없는 모든 요소의 세트를 만듭니다.

예:

except{[1,2,3,4,5], [2,3], [5], [6]} -> {1,4}

예:

except{t:prefab, t:prefab ref=select{t:texture, @path}}

first

first{sets...} -> {all first element in each sets}

first{count, sets...} -> {first count elements in each sets}

First는 파라미터로 전달된 각 세트에서 찾은 첫 번째 요소의 세트를 반환합니다. count가 파라미터로 전달된 경우, 각 세트의 첫 개수 요소를 가져옵니다.

예:

first{[3, 4,5], [9, 28, 3]} -> {3,9}

예:

first{3, [9, 28, 3, 4, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7]} -> {9, 28, 3, 1, 2, 3}

예:

크기 내림차순으로 프로젝트의 모든 .fbx 파일을 정렬하고 가장 크기가 큰 파일 3개를 표시합니다.

first{3,sort{*.fbx, @size, desc}}

format

format{expression} -> {set of items where the value is converted to a string}

format{formatString, expression} -> {set of items where the value is set by applying a format string}

형식은 두 가지 방식으로 사용할 수 있습니다. 하나의 표현식 인수만 사용된 경우, 해당 인수는 항목의 현재 @value를 문자열 표현으로 전환하려고 시도합니다.

형식이 형식 문자열과 함께 사용되면 형식 문자열의 모든 선택자를 항목의 선택값으로 대체하고 이 형식이 지정된 스트링을 항목의 @value에 설정합니다.

예:

print{format{"value=@value", [1,2,3,4]}}는 콘솔 창에 [“value=1”,“value=2”,“value=3”,“value=4”]를 프린트합니다.

groupBy

groupBy{set, selector} -> {multiple sets of items grouped by their selector}

예:

Expand 조작자와 연결된 groupBy 함수는 프로젝트의 각 유형의 에셋 수를 세기 위해 선택자에 따라 항목을 자동으로 그룹화할 수 있도록 허용합니다. 아래 예시에서 이 함수는 타입이 같은 항목의 세트를 만듭니다. Expand 조작자는 이 항목 세트를 같은 타입의 여러 세트로 확장하도록 허용합니다.

count{...groupBy{a:assets, @type}} -> {numberOfAssetType1, numberOfAssetType2, .. numberOfAssetTypeN}

gt

gt{set, value} -> {all elements greater than value}

gt{set, selector, value} -> {all elements with selector value greater than value}

특정한 값보다 큰 요소를 유지하여 여러 요소를 필터링합니다.

예:

gt{[2,4,5,6,4,3], 4} -> {5,6}

gte

gte{set, value} -> {all elements greater or equal than value}

gte{set, selector, value} -> {all with a selector value greater or equal than value}

특정한 값 이상인 요소를 유지하여 여러 요소를 필터링합니다.

예:

gte{[2,4,5,6,4,3], 4} -> {4,5,6,4}

intersect

intersect{sets...} -> {elements that are in all sets}

intersect{sets…, selector} -> {elements whose selector value is contained in all sets}

Intersect는 그 @value가 모든 세트에 포함된 요소의 세트를 새로 만듭니다. 선택자가 파라미터로 전달된 경우 선택자 값은 요소 비교에 사용됩니다.

예:

intersect{[1,2,3,4,5], [3, 5], [6, 3]} -> {3}

예:

크기가 4,000바이트를 초과하며, 경로에 “rock”이라는 단어가 포함된 모든 텍스처와 교차하는 텍스처를 모두 찾습니다.

intersect{t:texture size>4000, t:texture @path:rock}

last

last{sets...} -> {all last element in each sets}

last{count, sets...} -> {last count elements in each sets}

Last는 파라미터로 전달된 각 세트에서 찾은 마지막 요소의 세트를 반환합니다. count가 파라미터로 전달된 경우, 각 세트의 마지막 개수 요소를 가져옵니다.

예:

last{[3, 4,5], [9, 28, 3]} -> {5, 3}

예:

last{3, [9, 28, 3, 4, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7]} -> {7,8,9,5,6,7}

예:

크기 오름차순으로 프로젝트의 모든 .fbx 파일을 정렬하고 마지막 파일 3개를 가져옵니다.

last{3,sort{*.fbx, @size}}

lw

lw{set, value} -> {all elements less than value}

lw{set, selector, value} -> {all elements with selector value less than value}

특정한 값보다 작은 요소를 유지하여 여러 요소를 필터링합니다.

예:

lw{[2,4,5,6,4,3], 4} -> {2,3}

lwe

lwe{set, value} -> {all elements less or equal than value}

lwe{set, selector, value} -> {all with a selector value less or equal than value}

특정한 값 이하인 요소를 유지하여 여러 요소를 필터링합니다.

예:

lwe{[2,4,5,6,4,3], 4} -> {2,4,3,4}

map

map{set, <string containing selectors to replace>}

map 조작자는 검색 표현식을 기능적으로 표현하는 방식입니다. 이 조작자는 변수를 사용해 새로운 표현식을 형성하기 위해 표현식 결과를 매핑합니다.

다음 예시는:

map{t:texture, t:prefab ref=@id} -> {t:prefab ref=<textureId1>} {t:prefab ref=<textureId2>} ... {t:prefab ref=<textureIdN>}

t:texture에 의해 반환된 각 텍스처에 대해 t:prefab ref=@id 쿼리를 실행합니다.

이는 다음을 실행하는 것과 동등합니다.

{t:prefab ref={t:texture}}

max

max{sets...} -> {max value element in each set}

max{selector, sets...} -> {max selector value element in each set}

파라미터로 전달된 각 세트의 최대 @value`를 찾습니다. 선택자가 파라미터로 전달된 경우@selector` 값이 최대인 요소를 찾습니다.

예:

max{[1,2,3,4,5,6], [2,4,5]} -> {6, 5}

예:

가장 큰 .png 파일과 가장 큰 .jpg 파일을 찾습니다.

max{@size, *.png, *.jpg} -> {<largest .png file>, <largest .jpg file>}

min

min{sets...} -> {min value element in each set}

min{selector, sets...} -> {min selector value element in each set}

파라미터로 전달된 각 세트의 최소 @value`를 찾습니다. 선택자가 파라미터로 전달된 경우@selector` 값이 최소인 요소를 찾습니다.

예:

min{[1,2,3,4,5,6], [2,4,5]} -> {1, 2}

예:

가장 작은 .png 파일과 가장 큰 .jpg 파일을 찾습니다.

min{@size, *.png, *.jpg} -> {<smallest .png file>, <smallest .jpg file>}

neq

neq{set, value} -> {all elements not equal to value}

neq{set, selector, value} -> {all selector value not equal to value}

특정한 값과 동일하지 않은 요소를 유지하여 여러 요소를 필터링합니다.

예:

neq{[2,4,5,6,4,3], 4} -> {2,5,6,3}

print

print(FormatString | selector, set)

Print는 형식 문자열(또는 선택자)과 여러 항목을 가져와 각 항목의 형식이 지정된 결과를 콘솔에 프린트합니다. 이는 항목의 값을 디버그할 때 유용합니다.

프로젝트에서 다음 표현식은 텍스처 및 텍스처의 경로를 Search 창에 반환하며, 이를 콘솔 창에 프린트합니다.

print{'path=@path', t:texture}

예:

print{@value, [1,2,3,4]}는 콘솔 창에 [1,2,3,4]를 프린트합니다.

query

query{value} -> {query expression}

값을 쿼리 표현식으로 전환하려고 시도합니다. 일부 함수에서 파라미터 타입의 차이를 명확하게 보여주는 데 사용할 수 있습니다.

예:

count{t:material}은 다음과 동등합니다.

count{query{t:material}}

random

random{sets...} -> {random elements in each set}

파라미터로 전달된 각 항목 세트에서 가져온 무작위 요소로 세트를 만듭니다.

예:

random{[1,3,5], [6,4,2]} -> {3, 2} returns a random results in each set.

select

select(<set>, selectorForLabel, selectorForDesc, otherSelectors...)

Select는 새로운 검색 항목 세트를 만들고 원본 검색 항목 세트의 프로퍼티를 추출하거나 변환하는 함수입니다.

select 함수의 두 번째 파라미터(selectorForLabel)는 선택한 값을 신규 항목의 레이블에 할당합니다.

세 번째 파라미터(selectorForDesc)는 선택한 값을 신규 항목의 설명에 할당합니다.

Select 함수의 마지막 선택자 또한 항목의 값을 지정합니다.

예:

select를 사용하여 프로젝트에서 텍스처를 검색할 때 레이블이 경로이며 설명이 텍스처의 크기가 되는 여러 항목을 생성합니다.

select{t:texture, @path, @size}

또한 select 문의 마지막 선택자는 항목의 값을 설정합니다. 즉, select{t:texture, @path, @size} 예시의 경우 @size가 검색 항목의 @value도 됩니다. 어떻게 검색 표현식이 레이블을 대체하며 설명이 값을 설정하는지 알아보려면 Table 보기로 전환하십시오.

또한 select 함수의 선택자 자체가 함수일 수도 있습니다. 이러한 함수의 선택자는 처리되는 검색 항목에 따라 평가됩니다.

예:

select{t:texture, @path, count{t:prefab ref=@id}}

  1. 프로젝트의 각 텍스처에 대해 새로운 검색 항목(t:texture)을 만듭니다.
  2. 이 검색 항목의 레이블은 텍스처의 @path와 동일해야 합니다(@path).
  3. 또한 해당 검색 항목의 설명이 해당 텍스처를 참조하는 프리팹의 수(count{t:prefab ref=@id})와 동일해야 합니다. 예시에서는 @id가 각 텍스처 항목의 SearchItem.id를 참조합니다.

별칭 조작자를 사용하는 경우, 프로퍼티 값을 검색 항목 필드에 할당할 수 있습니다.

예:

print{"@pow", select{t:script, @path as pow}}

그러면 검색 항목의 @path 프로퍼티가 추출되어 select 함수에 의해 생성된 새로운 검색 항목의 pow 필드에 할당됩니다.

set

set{sets...} -> {set of all elements in all sets}

파라미터로 전달된 모든 세트에 포함된 모든 요소의 세트를 생성합니다. 이는 “[set, of , element]” 표기법 사용과 동등합니다.

예:

set{[1, 2,3], [4,5,6]}은 다음과 동등합니다.

[[1,2, 3], [4,5,6]]`은 다음과 동등합니다.

[1,2,3,4,5,6]

sort

sort{set, selector} -> {set of items sorted in ascending order according to selector value}

sort{set, selector, desc} -> {set of items sorted in descending order according to selector value}

선택자 값에 따라 여러 항목을 내림차순 또는 오름차순으로 정렬합니다.

예:

이 세트를 오름차순(가장 작은 값부터 가장 큰 값 순으로)으로 정렬합니다.

Sort{[4,2,7,5,8,1,9], @value} -> {1,2,4,5,7,8,9}

예:

이 세트를 내림차순(가장 큰 값부터 가장 작은 값 순으로)으로 정렬합니다.

sort{[4,2,7,5,8,1,9], @value, desc} -> {9,8,7,5,4,2,1}

예:

내 프로젝트의 모든 텍스처를 텍스처의 @size에 따라 내림차순(가장 큰 텍스처부터 가장 작은 텍스처 순으로)으로 정렬합니다.

sort{t:texture, @size, desc}

sum

sum{sets...} -> {sum of all elements in each set}

sum{selector, sets...} -> {sum of all elements in each set}

파라미터로 전달된 각 세트에 포함된 각 항목의 합계 `@value를 찾습니다. 선택자가 파라미터로 전달된 경우, 각 세트에 포함된 각 요소의 합계 @selector 값을 찾습니다.

예:

sum{[1,2,3,4,5,6], [2,4,5]} -> {21, 11}

예:

프로젝트의 모든 텍스처의 @size 합계를 찾습니다.

sum{@size, t:texture}

text

text{expression} -> {"text of the expression"}

표현식으로 문자열을 만듭니다. 이는 "" or ‘’ 구분 기호를 사용하는 것과 동등합니다.

예:

[text{hello}]는 다음과 동등합니다.

["hello"] 또는 [‘hello’]

union

union{sets...} -> {Unified set of all unique elements in all sets}

Union은 파라미터로 전달된 모든 세트에서 찾은 모든 요소의 세트를 만듭니다. distinct와 마찬가지로 중복되는 요소는 유지되지 않습니다.

예:

이 예에서는 중복 요소가 제거되었음을 확인할 수 있습니다.

union{[1,2,3], [3,4,5]} -> {1,2,3,4,5}

예:

union{*.mat, t:shader} -> {all materials and shaders in the project}

where

where{set, filterString | selector} -> {filtered set of items}

Where는 세트의 요소를 필터링하고 필터링된 새로운 세트를 반환하기 위해 선택자 사용과 조작자(>, ==, …)가 포함된 문자열 또는 선택자를 수락하는 일반 필터링 함수입니다.

예: 숫자를 값에 따라 필터링:

where{[1,2,3,4,5,6,7,8,9,10], '@value>4 and @value<9'} -> {5,6,7,8}

예: effect라는 단어를 포함하는 모든 오디오 클립 찾기:

where{t:AudioClip, @path:effect}

검색 표현식
커스텀 검색 공급자 만들기