Пример #1
0
        public override bool GetId(GameObject go, QueryFilterOperator op, int instanceId)
        {
            int goId = go.GetInstanceID();

            switch (op.type)
            {
            case FilterOperatorType.Contains:
            case FilterOperatorType.Equal:
                if (instanceId == goId)
                {
                    return(true);
                }
                return(EditorUtility.InstanceIDToObject(instanceId) is Component c && c.gameObject == go);

            case FilterOperatorType.NotEqual: return(instanceId != goId);

            case FilterOperatorType.Greater: return(instanceId > goId);

            case FilterOperatorType.GreaterOrEqual: return(instanceId >= goId);

            case FilterOperatorType.Lesser: return(instanceId < goId);

            case FilterOperatorType.LesserOrEqual: return(instanceId <= goId);
            }

            return(false);
        }
Пример #2
0
        bool OnAttributeFilter(GameObject go, QueryFilterOperator op, string value)
        {
            var god = GetGOD(go);

            if (god.attrs == null)
            {
                var attrs = new List <string>();

                var gocs = go.GetComponents <MonoBehaviour>();
                for (int componentIndex = 0; componentIndex < gocs.Length; ++componentIndex)
                {
                    var c = gocs[componentIndex];
                    if (!c || (c.hideFlags & HideFlags.HideInInspector) == HideFlags.HideInInspector)
                    {
                        continue;
                    }

                    attrs.AddRange(c.GetType().GetInterfaces().Select(t => t.Name.ToLowerInvariant()));
                }

                god.attrs = attrs.ToArray();
            }

            return(CompareWords(op, value.ToLowerInvariant(), god.attrs));
        }
        static bool OnPrefabFilter(GameObject go, QueryFilterOperator op, PrefabFilter value)
        {
            if (!PrefabUtility.IsPartOfAnyPrefab(go))
            {
                return(false);
            }

            switch (value)
            {
            case PrefabFilter.Root:
                return(PrefabUtility.IsAnyPrefabInstanceRoot(go));

            case PrefabFilter.Instance:
                return(PrefabUtility.IsPartOfPrefabInstance(go));

            case PrefabFilter.Top:
                return(PrefabUtility.IsOutermostPrefabInstanceRoot(go));

            case PrefabFilter.NonAsset:
                return(PrefabUtility.IsPartOfNonAssetPrefabInstance(go));

            case PrefabFilter.Asset:
                return(PrefabUtility.IsPartOfPrefabAsset(go));

            case PrefabFilter.Any:
                return(PrefabUtility.IsPartOfAnyPrefab(go));

            case PrefabFilter.Model:
                return(PrefabUtility.IsPartOfModelPrefab(go));

            case PrefabFilter.Regular:
                return(PrefabUtility.IsPartOfRegularPrefab(go));

            case PrefabFilter.Variant:
                return(PrefabUtility.IsPartOfVariantPrefab(go));

            case PrefabFilter.Modified:
                return(PrefabUtility.HasPrefabInstanceAnyOverrides(go, false));

            case PrefabFilter.Altered:
                return(PrefabUtility.HasPrefabInstanceAnyOverrides(go, true));

            default:
                return(false);
            }
        }
Пример #4
0
        bool OnPrefabFilter(GameObject go, QueryFilterOperator op, string value)
        {
            if (!PrefabUtility.IsPartOfAnyPrefab(go))
            {
                return(false);
            }

            if (value == "root")
            {
                return(PrefabUtility.IsAnyPrefabInstanceRoot(go));
            }

            if (value == "instance")
            {
                return(PrefabUtility.IsPartOfPrefabInstance(go));
            }

            if (value == "top")
            {
                return(PrefabUtility.IsOutermostPrefabInstanceRoot(go));
            }

            if (value == "nonasset")
            {
                return(PrefabUtility.IsPartOfNonAssetPrefabInstance(go));
            }

            if (value == "asset")
            {
                return(PrefabUtility.IsPartOfPrefabAsset(go));
            }

            if (value == "any")
            {
                return(PrefabUtility.IsPartOfAnyPrefab(go));
            }

            if (value == "model")
            {
                return(PrefabUtility.IsPartOfModelPrefab(go));
            }

            if (value == "regular")
            {
                return(PrefabUtility.IsPartOfRegularPrefab(go));
            }

            if (value == "variant")
            {
                return(PrefabUtility.IsPartOfVariantPrefab(go));
            }

            if (value == "modified")
            {
                return(PrefabUtility.HasPrefabInstanceAnyOverrides(go, false));
            }

            if (value == "altered")
            {
                return(PrefabUtility.HasPrefabInstanceAnyOverrides(go, true));
            }

            return(false);
        }
Пример #5
0
 public QueryFilter(TFieldKey field, object filterValue, QueryFilterOperator filterOperator)
 {
     Field    = field;
     Value    = filterValue;
     Operator = filterOperator;
 }
Пример #6
0
 /// <summary>
 /// Static method to build query filter for specified field, operator, and value
 /// </summary>
 /// <param name="field"></param>
 /// <param name="operator"></param>
 /// <param name="value"></param>
 public static string ConstructQueryFilter(string field, QueryFilterOperator queryFilterOperator, string value)
 {
     return($"{field}:{queryFilterOperator.ToString().ToLower()}:{Uri.EscapeDataString(value)}");
 }
Пример #7
0
 /// <summary>
 /// <see cref="ITableauApiService.BuildQueryFilter"/>
 /// </summary>
 public string BuildQueryFilter(string field, QueryFilterOperator queryFilterOperator, string value)
 {
     return(ConstructQueryFilter(field, queryFilterOperator, value));
 }