Beispiel #1
0
    protected override void Edit(bool array)
    {
        DEditorGUI.EditSmoothingAlgorithm(Asset, Definition, false);

        DEditorGUI.WithLabel("Axes",
                             () => { PropertyType.Selection = DEditorGUI.EditAxisSelection(PropertyType.Selection); });

        if (Asset is StateDefinition)
        {
            DEditorGUI.WithLabel("Strict Comparison",
                                 () => { PropertyType.StrictEquality = EditorGUILayout.Toggle(PropertyType.StrictEquality); });
        }

        if (PropertyType.Selection != AxisSelections.Disabled)
        {
            bool quaternion = PropertyType.Selection == AxisSelections.XYZ;

            DEditorGUI.WithLabel(quaternion ? "Quaternion Compression" : "Axis Compression", () =>
            {
                if (quaternion)
                {
                    PropertyType.QuaternionCompression =
                        DEditorGUI.EditFloatCompression(PropertyType.QuaternionCompression);
                }
                else
                {
                    DEditorGUI.EditAxes(PropertyType.EulerCompression, PropertyType.Selection);
                }
            });
        }
    }
    protected override void Edit(bool array)
    {
        DEditorGUI.EditSmoothingAlgorithm(Asset, Definition, false);

        DEditorGUI.WithLabel("Axes",
                             () => { PropertyType.Selection = DEditorGUI.EditAxisSelection(PropertyType.Selection); });

        PropertyCommandSettings cmdSettings   = Definition.CommandAssetSettings;
        PropertyStateSettings   stateSettings = Definition.StateAssetSettings;

        if (Asset is StateDefinition)
        {
            DEditorGUI.WithLabel("Strict Comparison",
                                 () => { PropertyType.StrictEquality = EditorGUILayout.Toggle(PropertyType.StrictEquality); });

            DEditorGUI.WithLabel("Teleport Threshold", () =>
            {
                if (cmdSettings != null)
                {
                    cmdSettings.SnapMagnitude = EditorGUILayout.FloatField(cmdSettings.SnapMagnitude);
                }

                if (stateSettings != null)
                {
                    stateSettings.SnapMagnitude = EditorGUILayout.FloatField(stateSettings.SnapMagnitude);
                }
            });
        }

        DEditorGUI.WithLabel("Axis Compression",
                             () => { DEditorGUI.EditAxes(PropertyType.Compression, PropertyType.Selection); });
    }
Beispiel #3
0
    protected override void Edit(bool array)
    {
        DEditorGUI.WithLabel("Space",
                             () => { PropertyType.Space = (TransformSpaces)EditorGUILayout.EnumPopup(PropertyType.Space); });

        DEditorGUI.EditSmoothingAlgorithm(Asset, Definition);

        DEditorGUI.Header("Position", "position");

        DEditorGUI.WithLabel("Axes",
                             () => { PropertyType.PositionSelection = DEditorGUI.EditAxisSelection(PropertyType.PositionSelection); });

        if (PropertyType.PositionSelection != AxisSelections.Disabled)
        {
            if (Asset is StateDefinition)
            {
                DEditorGUI.WithLabel("Strict Comparison",
                                     () =>
                {
                    PropertyType.PositionStrictCompare = EditorGUILayout.Toggle(PropertyType.PositionStrictCompare);
                });

                DEditorGUI.WithLabel("Teleport Threshold",
                                     () =>
                {
                    Definition.StateAssetSettings.SnapMagnitude =
                        EditorGUILayout.FloatField(Definition.StateAssetSettings.SnapMagnitude);
                });
            }

            DEditorGUI.WithLabel("Compression",
                                 () => { DEditorGUI.EditAxes(PropertyType.PositionCompression, PropertyType.PositionSelection); });
        }


        DEditorGUI.Header("Rotation", "rotation");

        DEditorGUI.WithLabel("Axes",
                             () => { PropertyType.RotationSelection = DEditorGUI.EditAxisSelection(PropertyType.RotationSelection); });

        if (PropertyType.RotationSelection != AxisSelections.Disabled)
        {
            if (Asset is StateDefinition)
            {
                DEditorGUI.WithLabel("Strict Comparison",
                                     () =>
                {
                    PropertyType.RotationStrictCompare = EditorGUILayout.Toggle(PropertyType.RotationStrictCompare);
                });
            }

            bool quaternion = PropertyType.RotationSelection == AxisSelections.XYZ;

            DEditorGUI.WithLabel(quaternion ? "Compression (Quaternion)" : "Compression (Euler)", () =>
            {
                if (quaternion)
                {
                    PropertyType.RotationCompressionQuaternion =
                        DEditorGUI.EditFloatCompression(PropertyType.RotationCompressionQuaternion);
                }
                else
                {
                    DEditorGUI.EditAxes(PropertyType.RotationCompression, PropertyType.RotationSelection);
                }
            });
        }
    }