Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


SceneQueryEngineFilterAttribute

Custom attribute is used to customize the search engine used by the scene search provider.
Read time 4 minutesLast updated 23 days ago

Definition

[AttributeUsage(AttributeTargets.Method)]public class SceneQueryEngineFilterAttribute : QueryEngineFilterAttribute

Remarks

This sample shows to use the
SceneQueryEngineFilter
attribute to customize the search engine used by the scene search provider.
The scene search provider allows the user to search for scene objects using custom filters, such as
is:prefab prefab:modified
, etc.
The following example shows how you can add a property filter
lights>=1
to search meshes that are affected but one or more lights.

Examples

[SceneQueryEngineFilter("lights", new[] { "=", "!=", "<", ">", "<=", ">=" })]internal static int? MeshRendererAffectedByLightsSceneFilter(GameObject go){ if (!go.TryGetComponent<MeshRenderer>(out var meshRenderer)) return null; if (!meshRenderer.isVisible) return null; var lightEffectCount = 0; var gp = go.transform.position; foreach (var light in Object.FindObjectsByType<Light>(FindObjectsSortMode.None)) { if (!light.isActiveAndEnabled) continue; var lp = light.transform.position; var distance = Vector3.Distance(gp, lp); if (distance > light.range) continue; if (light.type == UnityEngine.LightType.Spot) { var da = Vector3.Dot(light.transform.forward, lp - gp); if (da > Mathf.Deg2Rad * light.spotAngle) continue; } lightEffectCount++; } return lightEffectCount;}

Constructors

Constructor

Description

SceneQueryEngineFilterAttribute(System.String,System.String,System.String[])Create a filter with the corresponding token and supported operators.
SceneQueryEngineFilterAttribute(System.String,System.String,System.StringComparison,System.String[])Create a filter with the corresponding token and supported operators.
SceneQueryEngineFilterAttribute(System.String,System.String[])Create a filter with the corresponding token and supported operators.
SceneQueryEngineFilterAttribute(System.String,System.StringComparison,System.String[])Create a filter with the corresponding token and supported operators.

Inheritance

Inherited Members