示例#1
0
    public static void ShowFlexibleVector3Field(string fieldName, FlexibleVector3 value, GUISkin skin, bool bRotation = false)
    {
        GUILayout.BeginHorizontal();
        switch (value.type)
        {
        case FlexibleEditType.Uniform:
            value.SetValue(ShowVector3Field(fieldName, value.uniformValue, skin, bRotation));
            break;

        case FlexibleEditType.RangeTween:
            GUILayout.BeginVertical();
            ShowLabel(fieldName, skin);
            FieldInspectorHelper.StartSubSection();
            ShowFloatRangeField(bRotation ? "Pitch(X)" : "X", value.rangeX, skin);
            ShowFloatRangeField(bRotation ? "Yaw (Y)" : "Y", value.rangeY, skin);
            ShowFloatRangeField(bRotation ? "Roll (Z)" : "Z", value.rangeZ, skin);
            FieldInspectorHelper.EndSubSection();
            GUILayout.EndVertical();
            break;

        case FlexibleEditType.RangeRandom:
            GUILayout.BeginVertical();
            ShowLabel(fieldName, skin);
            FieldInspectorHelper.StartSubSection();
            ShowFloatRangeField(bRotation ? "Pitch(X)" : "X", value.rangeX, skin, " rand ");
            ShowFloatRangeField(bRotation ? "Yaw (Y)" : "Y", value.rangeY, skin, " rand ");
            ShowFloatRangeField(bRotation ? "Roll (Z)" : "Z", value.rangeZ, skin, " rand ");
            FieldInspectorHelper.EndSubSection();
            GUILayout.EndVertical();
            break;

        case FlexibleEditType.Curve:
            GUILayout.BeginVertical();
            ShowLabel(fieldName, skin);
            FieldInspectorHelper.StartSubSection();
            value.curveX = ShowCurveField(bRotation ? "Pitch(X)" : "X", value.curveX, skin, true);
            value.curveY = ShowCurveField(bRotation ? "Yaw (Y)" : "Y", value.curveY, skin, true);
            value.curveZ = ShowCurveField(bRotation ? "Roll (Z)" : "Z", value.curveZ, skin, true);
            FieldInspectorHelper.EndSubSection();
            GUILayout.EndVertical();
            break;

        default:
            break;
        }
        if (EditorGUILayout.DropdownButton(new GUIContent(), FocusType.Passive, skin.GetStyle("minipulldown")))
        {
            GenericMenu menu = new GenericMenu();
            if (value.type != FlexibleEditType.Uniform)
            {
                menu.AddItem(new GUIContent("Vector3 Constant"), false, () => { value.type = FlexibleEditType.Uniform; });
            }
            else
            {
                menu.AddDisabledItem(new GUIContent("Vector3 Constant"));
            }

            if (value.type != FlexibleEditType.RangeTween)
            {
                menu.AddItem(new GUIContent("Vector3 Linear Tween"), false, () => { value.type = FlexibleEditType.RangeTween; });
            }
            else
            {
                menu.AddDisabledItem(new GUIContent("Vector3 Linear Tween"));
            }

            if (value.type != FlexibleEditType.RangeRandom)
            {
                menu.AddItem(new GUIContent("Vector3 Random"), false, () => { value.type = FlexibleEditType.RangeRandom; });
            }
            else
            {
                menu.AddDisabledItem(new GUIContent("Vector3 Random"));
            }

            if (value.type != FlexibleEditType.Curve)
            {
                menu.AddItem(new GUIContent("Vector3 Curve"), false, () => { value.type = FlexibleEditType.Curve; });
            }
            else
            {
                menu.AddDisabledItem(new GUIContent("Vector3 Curve"));
            }
            menu.ShowAsContext();
        }
        GUILayout.EndHorizontal();
    }
 void SerializeVer1()
 {
     _Target = (FlexibleRigidbody)_OldTarget;
     _From   = (FlexibleVector3)_OldFrom;
     _To     = (FlexibleVector3)_OldTo;
 }
示例#3
0
 void SerializeVer1()
 {
     _Target = (FlexibleTransform)_OldTarget;
     _From   = (FlexibleVector3)_OldFrom;
     _To     = (FlexibleVector3)_OldTo;
 }
        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;
                }
            }
        }