Skip to content

Commit 980d4f8

Browse files
author
Julia Schwarz
committed
Fix bug where the start and end positions modified by the handles drawn in the scene would not persist when user pressed play.
1 parent cf5be55 commit 980d4f8

File tree

2 files changed

+28
-19
lines changed

2 files changed

+28
-19
lines changed

Assets/MixedRealityToolkit.SDK/Features/UX/Scripts/Sliders/PinchSlider.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,24 +52,29 @@ private enum SliderAxis
5252
[SerializeField]
5353
[Tooltip("Where the slider track starts, as distance from center along slider axis, in local space units.")]
5454
private float sliderStartDistance = -.5f;
55+
public float SliderStartDistance
56+
{
57+
get { return sliderStartDistance; }
58+
set { sliderStartDistance = value; }
59+
}
60+
5561
[SerializeField]
5662
[Tooltip("Where the slider track ends, as distance from center along slider axis, in local space units.")]
5763
private float sliderEndDistance = .5f;
64+
public float SliderEndDistance
65+
{
66+
get { return sliderEndDistance; }
67+
set { sliderEndDistance = value; }
68+
}
5869

5970
/// <summary>
6071
/// Gets the start position of the slider, in world space, or zero if invalid.
6172
/// Sets the start position of the slider, in world space, projected to the slider's axis.
6273
/// </summary>
6374
public Vector3 SliderStartPosition
6475
{
65-
get
66-
{
67-
return transform.TransformPoint(GetSliderAxis() * sliderStartDistance);
68-
}
69-
set
70-
{
71-
sliderStartDistance = Vector3.Dot(transform.InverseTransformPoint(value), GetSliderAxis());
72-
}
76+
get { return transform.TransformPoint(GetSliderAxis() * sliderStartDistance); }
77+
set { sliderStartDistance = Vector3.Dot(transform.InverseTransformPoint(value), GetSliderAxis()); }
7378
}
7479

7580
/// <summary>
@@ -78,14 +83,8 @@ public Vector3 SliderStartPosition
7883
/// </summary>
7984
public Vector3 SliderEndPosition
8085
{
81-
get
82-
{
83-
return transform.TransformPoint(GetSliderAxis() * sliderEndDistance);
84-
}
85-
set
86-
{
87-
sliderEndDistance = Vector3.Dot(transform.InverseTransformPoint(value), GetSliderAxis());
88-
}
86+
get { return transform.TransformPoint(GetSliderAxis() * sliderEndDistance); }
87+
set { sliderEndDistance = Vector3.Dot(transform.InverseTransformPoint(value), GetSliderAxis()); }
8988
}
9089

9190
/// <summary>
@@ -95,6 +94,7 @@ public Vector3 SliderTrackDirection
9594
{
9695
get { return SliderEndPosition - SliderStartPosition; }
9796
}
97+
9898
#endregion
9999

100100
#region Event Handlers

Assets/MixedRealityToolkit.SDK/Inspectors/UX/Sliders/PinchSliderInspector.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,32 @@ private void OnSceneGUI()
2929
Handles.color = Color.cyan;
3030
Vector3 startPos = slider.SliderStartPosition;
3131
Vector3 endPos = slider.SliderEndPosition;
32-
3332
Handles.DrawLine(startPos, endPos);
3433

35-
float handleSize = HandleUtility.GetHandleSize(startPos) * 0.15f;
3634

35+
EditorGUI.BeginChangeCheck();
36+
37+
float handleSize = HandleUtility.GetHandleSize(startPos) * 0.15f;
3738
slider.SliderStartPosition = Handles.FreeMoveHandle(startPos,
3839
Quaternion.identity,
3940
handleSize,
4041
Vector3.zero,
4142
Handles.SphereHandleCap);
42-
4343
slider.SliderEndPosition = Handles.FreeMoveHandle(endPos,
4444
Quaternion.identity,
4545
handleSize,
4646
Vector3.zero,
4747
Handles.SphereHandleCap);
4848

49+
if (EditorGUI.EndChangeCheck())
50+
{
51+
var sliderStartSerialized = serializedObject.FindProperty("sliderStartDistance");
52+
var sliderEndSerialized = serializedObject.FindProperty("sliderEndDistance");
53+
sliderStartSerialized.floatValue = slider.SliderStartDistance;
54+
sliderEndSerialized.floatValue = slider.SliderEndDistance;
55+
serializedObject.ApplyModifiedProperties();
56+
}
57+
4958
DrawLabelWithDottedLine(startPos + (Vector3.up * handleSize * 10f), startPos, handleSize, "slider start");
5059
DrawLabelWithDottedLine(endPos + (Vector3.up * handleSize * 10f), endPos, handleSize, "slider end");
5160
}

0 commit comments

Comments
 (0)