private bool IsValidInstance(T element, VerifyPrefabTypeAttribute attribute) { if (element == null) { return(true); } PrefabInstanceStatus prefabType = PrefabUtility.GetPrefabInstanceStatus(element); switch (prefabType) { case PrefabInstanceStatus.NotAPrefab: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.NotAPrefab)); case PrefabInstanceStatus.Connected: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.Connected)); case PrefabInstanceStatus.Disconnected: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.Disconnected)); case PrefabInstanceStatus.MissingAsset: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.MissingAsset)); } return(false); }
protected override float GetElementHeight(GUIContent label, T element, VerifyPrefabTypeAttribute attribute, fiGraphMetadata metadata) { if (IsValidInstance(element, attribute) == false) { return(33 + Margin); } return(0); }
protected override T Edit(Rect region, GUIContent label, T element, VerifyPrefabTypeAttribute attribute, fiGraphMetadata metadata) { if (IsValidInstance(element, attribute) == false) { region.height -= Margin; PrefabType actualPrefabType = PrefabUtility.GetPrefabType(element); EditorGUI.HelpBox(region, "This property needs to be a " + attribute.PrefabType + ", not a " + actualPrefabType, MessageType.Error); } return(element); }
private bool IsValidInstance(T element, VerifyPrefabTypeAttribute attribute) { if (element == null) { return(true); } PrefabType prefabType = PrefabUtility.GetPrefabType(element); switch (prefabType) { case PrefabType.None: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.None)); case PrefabType.Prefab: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.Prefab)); case PrefabType.ModelPrefab: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.ModelPrefab)); case PrefabType.PrefabInstance: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.PrefabInstance)); case PrefabType.ModelPrefabInstance: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.ModelPrefabInstance)); case PrefabType.MissingPrefabInstance: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.MissingPrefabInstance)); case PrefabType.DisconnectedPrefabInstance: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.DisconnectedPrefabInstance)); case PrefabType.DisconnectedModelPrefabInstance: return(IsFlagSet(attribute.PrefabType, VerifyPrefabTypeFlags.DisconnectedModelPrefabInstance)); } return(false); }