Unity 6.3
0 онлайн 76 гостей 3 в системе
Вход

SearchExpressionEvaluationHints

перечисление

Описание

Подсказки, предоставляемые времени выполнения SearchExpression для указания того, как должен выполняться определенный SearchExpressionEvaluatorAttribute.

Вот пример оценщика, не поддерживающего оценку потоков:

[Description("Returns asset paths corresponding to a list of instance ids")]
[SearchExpressionEvaluator("IdsToPaths", SearchExpressionEvaluationHints.ThreadNotSupported, SearchExpressionType.Iterable)]
public static IEnumerable<SearchItem> IdsToPath(SearchExpressionContext c)
{
    foreach (var idItem in c.args[0].Execute(c))
    {
        if (SearchExpression.TryConvertToDouble(idItem, out var idNum))
        {
            var id = (int)idNum;
            var path = AssetDatabase.GetAssetPath(id);
            if (!string.IsNullOrEmpty(path))
            {
                yield return SearchExpression.CreateItem(path, c.ResolveAlias("asset path"));
            }
        }
    }
}

Свойства

Свойство Описание
ThreadSupportedУказывает, что оценщик поддерживает оценку в рабочем потоке (который не является основным потоком). Это подсказка оценки по умолчанию.
ThreadNotSupportedУказывает, что оценщик не поддерживает оценку рабочего потока и должен оцениваться только в главном потоке. Это может быть в случае, если оценщик использует небезопасный поток Unity API (например, AssetDatabase).
ExpandSupportedУказывает, что вычислитель может вернуть SearchItem, содержащий SearchExpression с поддержкой развёртывания, например groupBy{}.
AlwaysExpandОценка Wehn SearchExpression означает, что каждый заимствованный элемент может быть другим SearchExpression, который нуждается в оценке.
DoNotValidateSignatureУказывает, что сигнатуру параметров SearchExpression проверять не нужно. Применяется в основном для метапрограммных вычислителей вроде apply{}, куда в качестве параметра можно передать частичный вычислитель.
DoNotValidateArgsSignatureУказывает, что подпись оценщика не должна проверяться временем выполнения SearchExpression, что позволяет передавать оценщику любое количество параметров любого типа. Проверка параметров становится задачей самого оценщика.
ImplicitArgsLiteralsУказывает, что оценщик предполагает, что его аргументы являются буквальными и будут использоваться как таковые.
DefaultПодсказки по оценке по умолчанию. В настоящее время по умолчанию поддерживается оценка потока (SearchExpressionEvaluationHints.ThreadSupported).