private void EnumChanged(ChangeEvent <Enum> _event) { m_ValueField.RemoveFromHierarchy(); ConfiguratorValueType newValue = (ConfiguratorValueType)_event.newValue; m_ValueField = ConfiguratorTypeConverter.CreateFieldBasedOnType(newValue, m_WorldStateDescription.Value, "Value", ValueFieldChanged); m_ValueField.AddToClassList("desiredValue"); hierarchy.Add(m_ValueField); }
public static void SetWithoutNotifyForSpecifiedFieldType(ConfiguratorValueType _valueType, VisualElement _field, object _value) { switch (_valueType) { case ConfiguratorValueType.BOOL: (_field as Toggle).SetValueWithoutNotify(_value.StructConvertTo <bool>()); break; case ConfiguratorValueType.INT: (_field as IntegerField).SetValueWithoutNotify(_value.StructConvertTo <int>()); break; case ConfiguratorValueType.FLOAT: (_field as FloatField).SetValueWithoutNotify(_value.StructConvertTo <float>()); break; case ConfiguratorValueType.STRING: (_field as TextField).SetValueWithoutNotify(_value.TryConvertTo <string>()); break; case ConfiguratorValueType.VECTOR2: (_field as Vector2Field).SetValueWithoutNotify(_value.StructConvertTo <Vector2>()); break; case ConfiguratorValueType.VECTOR3: (_field as Vector3Field).SetValueWithoutNotify(_value.StructConvertTo <Vector3>()); break; case ConfiguratorValueType.VECTOR2INT: (_field as Vector2IntField).SetValueWithoutNotify(_value.StructConvertTo <Vector2Int>()); break; case ConfiguratorValueType.VECTOR3INT: (_field as Vector3IntField).SetValueWithoutNotify(_value.StructConvertTo <Vector3Int>()); break; default: break; } }
public static VisualElement CreateFieldBasedOnType(ConfiguratorValueType _valueType, object _initialValue, string _label, System.Action _changeEventCallback) { switch (_valueType) { case ConfiguratorValueType.BOOL: Toggle newToggle = new Toggle(_label) { value = _initialValue.StructConvertTo <bool>() }; newToggle.RegisterCallback <ChangeEvent <bool> >(_event => _changeEventCallback?.Invoke()); return(newToggle); case ConfiguratorValueType.INT: IntegerField newIntegerField = new IntegerField(_label) { value = _initialValue.StructConvertTo <int>() }; newIntegerField.RegisterCallback <ChangeEvent <int> >(_event => _changeEventCallback?.Invoke()); return(newIntegerField); case ConfiguratorValueType.FLOAT: FloatField newFloatField = new FloatField(_label) { value = _initialValue.StructConvertTo <float>() }; newFloatField.RegisterCallback <ChangeEvent <float> >(_event => _changeEventCallback?.Invoke()); return(newFloatField); case ConfiguratorValueType.STRING: string castValue = _initialValue.TryConvertTo <string>(); TextField newTextField = new TextField(_label) { value = castValue ?? string.Empty }; newTextField.RegisterCallback <ChangeEvent <string> >(_event => _changeEventCallback?.Invoke()); return(newTextField); case ConfiguratorValueType.VECTOR2: Vector2Field newVector2Field = new Vector2Field(_label) { value = _initialValue.StructConvertTo <Vector2>() }; newVector2Field.RegisterCallback <ChangeEvent <Vector2> >(_event => _changeEventCallback?.Invoke()); return(newVector2Field); case ConfiguratorValueType.VECTOR3: Vector3Field newVector3Field = new Vector3Field(_label) { value = _initialValue.StructConvertTo <Vector3>() }; newVector3Field.RegisterCallback <ChangeEvent <Vector3> >(_event => _changeEventCallback?.Invoke()); return(newVector3Field); case ConfiguratorValueType.VECTOR2INT: Vector2IntField newVector2IntField = new Vector2IntField(_label) { value = _initialValue.StructConvertTo <Vector2Int>() }; newVector2IntField.RegisterCallback <ChangeEvent <Vector2Int> >(_event => _changeEventCallback?.Invoke()); return(newVector2IntField); case ConfiguratorValueType.VECTOR3INT: Vector3IntField newVector3IntField = new Vector3IntField(_label) { value = _initialValue.StructConvertTo <Vector3Int>() }; newVector3IntField.RegisterCallback <ChangeEvent <Vector3Int> >(_event => _changeEventCallback?.Invoke()); return(newVector3IntField); default: return(null); } }