object GetValue() { switch (_Type) { case Type.None: return(null); case Type.Int: return(_IntValue.value); case Type.Float: return(_FloatValue.value); case Type.Bool: return(_BoolValue.value); case Type.String: return(_StringValue.value); case Type.Long: return(_LongValue.value); case Type.Enum: if (EnumFieldUtility.IsEnum(_ReferenceType.type)) { return(System.Enum.ToObject(_ReferenceType.type, _EnumValue.value)); } return(_EnumValue.value); case Type.GameObject: return(_GameObjectValue.value); case Type.Vector2: return(_Vector2Value.value); case Type.Vector3: return(_Vector3Value.value); case Type.Quaternion: return(_QuaternionValue.value); case Type.Rect: return(_RectValue.value); case Type.Bounds: return(_BoundsValue.value); case Type.Color: return(_ColorValue.value); case Type.Component: return(_ComponentValue.value); case Type.Slot: object value = null; if (_InputSlotValue.GetValue(ref value)) { return(value); } else if (_InputSlotValue.dataType != null) { return(Events.ArborEventUtility.GetDefault(_InputSlotValue.dataType)); } break; } return(null); }
public void UpdateInput(NodeGraph nodeGraph, GraphArgumentUpdateTiming updateTiming) { ParameterContainerInternal parameterContainer = nodeGraph.parameterContainer; if (parameterContainer == null) { return; } for (int i = 0, count = _Arguments.Count; i < count; ++i) { GraphArgument argument = _Arguments[i]; if ((argument.updateTiming & updateTiming) == 0 || !argument.isPublicSet) { continue; } Parameter parameter = argument.parameterID != 0? parameterContainer.GetParam(argument.parameterID) : parameterContainer.GetParam(argument.parameterName); string invalidText = GetInvalidText(argument, parameter); if (!string.IsNullOrEmpty(invalidText)) { Debug.LogWarning(invalidText, nodeGraph); continue; } if (!parameter.isPublicSet) { Debug.LogWarning("Set of parameter is not public. : \"" + parameter.name + "\"", nodeGraph); continue; } switch (parameter.type) { case Parameter.Type.Int: { FlexibleInt intParameter = _IntParameters[argument.parameterIndex]; parameter.intValue = intParameter.value; } break; case Parameter.Type.Long: { FlexibleLong longParameter = _LongParameters[argument.parameterIndex]; parameter.longValue = longParameter.value; } break; case Parameter.Type.Float: { FlexibleFloat floatParameter = _FloatParameters[argument.parameterIndex]; parameter.floatValue = floatParameter.value; } break; case Parameter.Type.Bool: { FlexibleBool boolParameter = _BoolParameters[argument.parameterIndex]; parameter.boolValue = boolParameter.value; } break; case Parameter.Type.String: { FlexibleString stringParameter = _StringParameters[argument.parameterIndex]; parameter.stringValue = stringParameter.value; } break; case Parameter.Type.Enum: { FlexibleEnumAny enumParameter = _EnumParameters[argument.parameterIndex]; parameter.intValue = enumParameter.value; } break; case Parameter.Type.GameObject: { FlexibleGameObject gameObjectParameter = _GameObjectParameters[argument.parameterIndex]; parameter.gameObjectValue = gameObjectParameter.value; } break; case Parameter.Type.Vector2: { FlexibleVector2 vector2Parameter = _Vector2Parameters[argument.parameterIndex]; parameter.vector2Value = vector2Parameter.value; } break; case Parameter.Type.Vector3: { FlexibleVector3 vector3Parameter = _Vector3Parameters[argument.parameterIndex]; parameter.vector3Value = vector3Parameter.value; } break; case Parameter.Type.Quaternion: { FlexibleQuaternion quaternionParameter = _QuaternionParameters[argument.parameterIndex]; parameter.quaternionValue = quaternionParameter.value; } break; case Parameter.Type.Rect: { FlexibleRect rectParameter = _RectParameters[argument.parameterIndex]; parameter.rectValue = rectParameter.value; } break; case Parameter.Type.Bounds: { FlexibleBounds boundsParameter = _BoundsParameters[argument.parameterIndex]; parameter.boundsValue = boundsParameter.value; } break; case Parameter.Type.Color: { FlexibleColor colorParameter = _ColorParameters[argument.parameterIndex]; parameter.colorValue = colorParameter.value; } break; case Parameter.Type.Transform: case Parameter.Type.RectTransform: case Parameter.Type.Rigidbody: case Parameter.Type.Rigidbody2D: case Parameter.Type.Component: { FlexibleComponent componentParameter = _ComponentParameters[argument.parameterIndex]; parameter.objectReferenceValue = componentParameter.value; } break; case Parameter.Type.Variable: { InputSlotTypable inputSlot = _InputSlots[argument.parameterIndex]; object value = null; if (inputSlot.GetValue(ref value)) { parameter.variableValue = value; } } break; } } }