指示是否应验证筛选器的布尔值。默认为 false。
如果为 true,并且 skipUnknownFilters 为 false,则在未使用 QueryEngine.SetDefaultFilter 提供默认处理程序时,未知筛选器会生成错误。
using UnityEditor; using UnityEditor.Search; using UnityEngine; static class Example_QueryValidationOptions_validateFilters { [MenuItem("Examples/QueryValidationOptions/validateFilters")] public static void RunExample() { // Set up the query validation options with no filter validation var validationOptions = new QueryValidationOptions { validateFilters = false }; // Set up the query engine var queryEngine = new QueryEngine<MyObjectType>(validationOptions); queryEngine.AddFilter("id", myObj => myObj.id); queryEngine.SetSearchDataCallback(myObj => new[] { myObj.id.ToString(), myObj.name }); // Parse a query with the filter "id". There shouldn't be any errors var query = queryEngine.ParseQuery("id>10"); Debug.Assert(query.valid, $"Query \"{query.text}\" should be valid."); // Because the QueryEngine doesn't validate filters, no other filters will generate an error when parsed. query = queryEngine.ParseQuery("name:MyName"); Debug.Assert(query.valid, $"Query \"{query.text}\" should be valid."); } class MyObjectType { public int id { get; set; } public string name { get; set; } = string.Empty; public Vector2 position { get; set; } = Vector2.zero; public bool active { get; set; } public override string ToString() { return $"({id}, {name}, ({position.x}, {position.y}), {active})"; } } }