static public VariantData VariantDataUnity(VariantData variantData) { Type variantType = variantData.GetVariantType(); UnityEngine.Object tmp = EditorGUILayout.ObjectField((UnityEngine.Object)variantData.rawData, variantType, true); return(new VariantData(tmp, variantType)); }
public override bool Equals(object obj) { if (obj == null) { return(false); } VariantData b = (VariantData)obj; Type aType = GetVariantType(); Type bType = b.GetVariantType(); if (aType != bType) { return(false); } if (rawData == null) { return(b.rawData == null); } else if (b.rawData == null) { return(false); } return(rawData.Equals(b.rawData)); }
static public VariantData VariantDataField(VariantData variantData) { Type variantType = variantData.GetVariantType(); if (variantType == typeof(Trigger)) { return(VariantDataTrigger(variantData)); } else if (variantType == typeof(bool)) { return(new VariantData(EditorGUILayout.Toggle(variantData.GetData <bool>()), typeof(bool))); } else if (variantType == typeof(int)) { return(new VariantData(EditorGUILayout.IntField(variantData.GetData <int>()), typeof(int))); } else if (variantType == typeof(float)) { return(new VariantData(EditorGUILayout.FloatField(variantData.GetData <float>()), typeof(float))); } else if (variantType == typeof(string)) { return(new VariantData(EditorGUILayout.TextArea(variantData.GetData <string>()), typeof(string))); } else if (variantType == typeof(Vector2)) { return(new VariantData(EditorGUILayout.Vector2Field("", variantData.GetData <Vector2>()), typeof(Vector2))); } else if (variantType == typeof(Vector3)) { return(new VariantData(EditorGUILayout.Vector3Field("", variantData.GetData <Vector3>()), typeof(Vector3))); } else if (variantType == typeof(Vector4)) { return(new VariantData(EditorGUILayout.Vector4Field("", variantData.GetData <Vector4>()), typeof(Vector4))); } else if (variantType == typeof(Quaternion)) { Quaternion quaternion = variantData.GetData <Quaternion>(); Vector4 buffer = new Vector4(quaternion[0], quaternion[1], quaternion[2], quaternion[3]); buffer = EditorGUILayout.Vector4Field("", buffer); quaternion = new Quaternion(buffer[0], buffer[1], buffer[2], buffer[3]); return(new VariantData(quaternion, typeof(Quaternion))); } else if (variantType.IsEnum) { return(new VariantData(EditorGUILayout.EnumPopup(variantData.GetData <Enum>()), variantType)); } else { return(VariantDataUnity(variantData)); } }