Справочная информация о функциях
На этой странице объясняются функции, которые можно использовать в выражениях поиска. Функции используются для манипулирования результатами поиска и выполнения операций с ними. Функции перечислены по категориям и в алфавитном порядке:
Функции с разбивкой по категориям
Манипулирование набором
| Выражение | Описание |
|---|---|
|
отдельное {Variadic | AnyExpression} |
Создает уникальное объединение множества выражений. |
|
кроме {Iterable, Variadic | Iterable} |
Получает разность двух последовательностей. |
|
первый {Number, Variadic | Iterable} |
Возвращает первый результат для каждого выражения. |
|
groupBy {Iterable, Optional | Selector} |
Результаты поиска по группе @selector | Подсказки: ExpandSupported |
|
пересекаются {Нет сигнатуры} |
Создает набор пересечений двух последовательностей. |
|
последний {Number, Variadic | Iterable} |
Возвращает последний результат для каждого выражения. |
|
карта {Iterable, AnyValue} |
Сопоставляет результат выражения для создания нового выражения с помощью переменных. |
|
выбрать {Нет сигнатуры} |
Создает новые результаты путем выбора значения и свойства, которые будут взяты. |
|
сорт {Нет сигнатуры} |
Сортировка результатов выражения на основе критерия. |
|
союз {Variadic | AnyExpression} |
Создает уникальное объединение множества выражений. |
Установить фильтрацию
| Выражение | Описание |
|---|---|
|
экв {Iterable, Selector, Literal | QueryString} |
Сохраняет результаты поиска, имеющие равное значение. |
|
гт {Iterable, Selector, Literal | QueryString} |
Сохраняет результаты поиска, которые имеют большую ценность. |
|
ГТЭ {Iterable, Selector, Literal | QueryString} |
Сохраняет результаты поиска, имеющие большее или равное значение. |
|
Лв {Iterable, Selector, Literal | QueryString} |
Сохраняет результаты поиска, имеющие более низкое значение. |
|
2004 год {Iterable, Selector, Literal | QueryString} |
Сохраняет результаты поиска, имеющие меньшее или равное значение. |
|
Нек {Iterable, Selector, Literal| QueryString} |
Сохраняет результаты поиска, имеющие другое значение. |
|
где {Iterable, Text | Selector | QueryString} |
Исключает результаты поиска, для которых выражение не является действительным. |
Тип
| Выражение | Описание |
|---|---|
|
средний {Selector, Variadic | Iterable} |
Находит среднее значение для каждого выражения. |
|
Количество {Variadic | Iterable} |
Подсчитывает число результатов в выражении. |
|
макс. {Selector, Variadic | Iterable} |
Находит максимальное значение для каждого выражения. |
|
мин. {Selector, Variadic | Iterable} |
Находит минимальное значение для каждого выражения. |
|
сумма {Selector, Variadic | Iterable} |
Вычисляет сумму для каждого выражения. |
Утилита
| Выражение | Описание |
|---|---|
|
псевдоним {Iterable, Text | Selector | Iterable} |
Назначает выражению псевдоним. | Подсказки: AlwaysExpand |
|
константа {Literal | Function} |
Возвращает первый результат для каждого выражения. |
|
формат {Text | Selector, Variadic | AnyValue} |
Преобразует аргументы в строку, позволяющую форматировать результат. |
|
печать {Text | Selector, Variadic | Iterable} |
Печатает результаты выражения в консоли. |
|
поиск {Нет сигнатуры} |
Советы: ExpandSupported |
|
случайные {Variadic | Iterable} |
Случайно выбирает результат для каждого выражения. |
|
набор {Variadic | Iterable} |
Возвращает набор элементов из любого выражения. |
|
текст {Нет сигнатуры} |
Преобразует текст любого выражения в буквальную строку. |
Функции в алфавитном порядке
псевдоним
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}}
Пример:
Назначить псевдоним «число» элементам: 1, 2 и 3.
alias{[1, 2, 3], 'number'}
Пример:
Назначение и псевдоним динамически вычисляются из форматной строки для 1,2 и 3:
alias{[1,2,3], 'number @value}'}
средний
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{value} -> {constant value}
Попытка преобразовать значение в постоянное буквальное значение: число, строку или логическое значение. Это может использоваться для разъяснения типов параметров в некоторых функциях.
Пример:
first{constant{5}, t:material}
Количество
count{sets...} -> {count of each set}
Подсчитывает количество результатов в каждом наборе, переданном в качестве параметров.
Пример:
count{t:texture, t:material} -> {359, 194}
Пример:
Из индекса под названием «ассеты» группировать ассеты по типу и подсчитать каждую из этих групп ассетов. Возьмите пять самых больших групп.
first{5, sort{count{...groupBy{a:assets, @type}}, @value, desc}}
отдельное
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}
Пример:
Выберите @type каждого ассета в индексе под названием «проект» и сохраните один ассет каждого типа, поскольку дубликаты рассчитываются в соответствии с @value элемента.
distinct{select{a:project, @type}}
экв
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 serialized property 256.
eq{t:texture, #width, 256}
это эквивалентно
t:texture #width=256
кроме
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{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 в проекте в убывающем порядке размера и показать три самых больших.
first{3,sort{*.fbx, @size, desc}}
формат
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 элемента в строковое представление.
Если format используется со строкой формата, то он заменит все селекторы в строке формата выбранным значением элемента и установит эту форматированную строку в @value элемента.
Пример:
print{format{“value=@value”, [1,2,3,4]}} выведет [“value=1”,”value=2”,”value=3”,”value=4”] в окне Console.
groupBy
groupBy{set, selector} -> {multiple sets of items grouped by their selector}
Пример:
Чтобы подсчитать количество ассетов для каждого типа в проекте, функция groupBy в сочетании с оператором Expand позволяет автоматически группировать элементы в соответствии с селектором. В примере ниже она создает набор элементов одного и того же типа. Оператор Expand позволяет расширить этот набор элементов на несколько наборов одного и того же типа.
count{...groupBy{a:assets, @type}} -> {numberOfAssetType1, numberOfAssetType2, .. numberOfAssetTypeN}
гт
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{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{sets...} -> {elements that are in all sets}
intersect{sets…, selector} -> {elements whose selector value is contained in all sets}
Пересечение создает новый набор элементов, @value которых содержится во всех наборах. Если в качестве параметра передан селектор, то значение селектора используется для сравнения элементов.
Пример:
intersect{[1,2,3,4,5], [3, 5], [6, 3]} -> {3}
Пример:
Найти все текстуры, размер которых больше 4000 байт и пересекаются со всеми текстурами, путь которых содержит слово “rock”.
intersect{t:texture size>4000, t:texture @path:rock}
последний
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 в проекте по возрастающему порядку размера и возьмите последние три.
last{3,sort{*.fbx, @size}}
Лв
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}
2004 год
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{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:prefab ref=@id для каждой из текстур, возвращенных t:texture.
Это эквивалентно запуску:
{t:prefab ref={t:texture}}
макс.
max{sets...} -> {max value element in each set}
max{selector, sets...} -> {max selector value element in each set}
Находит максимальное значение @value` for each set passed as parameters. If a selector is passed as a parameter, find the element with maximum@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{sets...} -> {min value element in each set}
min{selector, sets...} -> {min selector value element in each set}
Находит минимальное значение @value` for each set passed as parameters. If a selector is passed as parameter, find the element with minimum@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{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(FormatString | selector, set)
Print принимает строку формата (или селектор) и набор элементов и печатает форматированные результаты каждого элемента в консоли. Это может быть полезно для отладки значений элемента.
В проекте следующее выражение возвращает текстуры и их пути в окне Поиск и печатает их в окне Консоли:
print{'path=@path', t:texture}
Пример:
print{@value, [1,2,3,4]} отобразит [1,2,3,4] в окне Консоли.
поиск
query{value} -> {query expression}
Попытки преобразовать значение в выражение запроса. Это может использоваться для разъяснения параметров типа в некоторых специфических функциях.
Пример:
count{t:material} эквивалентно
count{query{t:material}}
случайные
random{sets...} -> {random elements in each set}
Создает набор случайных элементов, взятых из каждого набора элементов, переданных в качестве параметра.
Пример:
random{[1,3,5], [6,4,2]} -> {3, 2} возвращает случайные результаты в каждом наборе.
выбрать
select(<set>, selectorForLabel, selectorForDesc, otherSelectors...)
Select — это функция, которая создает новый набор элементов поиска и извлекает или преобразует свойства из первоначального набора элементов поиска.
Второй параметр (selectorForLabel) функции select присваивает выбранное значение к метке нового элемента.
Третий параметр (selectorForDesc) назначает выбранное значение для описания нового элемента.
Последний селектор в функции select также указывает значение элемента
Пример:
При поиске текстур в проекте, используя select, генерируется набор элементов, где метка является путем, а описание становится размером текстуры:
select{t:texture, @path, @size}
Последний селектор в команде select также устанавливает значение элемента. Для примера select{t:texture, @path, @size} это означает, что @size также станет @value элемента поиска. Переключитесь на вид Таблицы, чтобы увидеть, как выражение поиска заменяет метку и описание устанавливает значение:
Селекторы функции select также могут быть сами по себе функциями. Селекторы в этих функциях оцениваются в соответствии с обрабатываемым элементом поиска.
Пример:
select{t:texture, @path, count{t:prefab ref=@id}}
- Для каждой текстуры в проекте создать новый элемент поиска (
t:texture) - , метка которого равна
@pathтекстуры (@path) - и описание которого равно количеству префабы, относящихся к этой текстуре (
count{t:prefab ref=@id}). В примере@idотносится кSearchItem.idкаждого элемента текстуры.
Значение свойства можно назначить полю элемента поиска, если использовать оператор псевдонима.
Пример:
print{"@pow", select{t:script, @path as pow}}
Это извлекает свойство @path из элемента поиска и назначает его полю элемента поиска с именем pow в новом элементе поиска, созданном функцией select.
набор
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{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{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{expression} -> {“text of the expression”}
Создает строку из выражения. Это эквивалентно использованию разделителей "" или "".
Пример:
[text{hello}] эквивалентно
[“hello”] или [‘hello’]
союз
union{sets...} -> {Unified set of all unique elements in all sets}
Объединение создает множество всех элементов, найденных во всех множествах, переданных в качестве параметра. Как и 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{set, filterString | selector} -> {filtered set of items}
Где является общей функцией фильтрации, которая принимает селектор или строку, содержащую использование селекторов и операторов (>, ==, …) для фильтрации элементов множества и возвращает новое отфильтрованное множество.
Пример: Фильтрация чисел в соответствии с их значением:
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}