Skip to content

Commit 95e2070

Browse files
author
David Kline
authored
Merge pull request #3489 from keveleigh/orbital-stability
Add additional null checking in the Orbital solver
2 parents ab5c4b6 + c5df3ff commit 95e2070

File tree

1 file changed

+4
-4
lines changed
  • Assets/MixedRealityToolkit.SDK/Features/Utilities/Solvers

1 file changed

+4
-4
lines changed

Assets/MixedRealityToolkit.SDK/Features/Utilities/Solvers/Orbital.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public override void SolverUpdate()
111111

112112
private Quaternion SnapToTetherAngleSteps(Quaternion rotationToSnap)
113113
{
114-
if (!UseAngleSteppingForWorldOffset)
114+
if (!UseAngleSteppingForWorldOffset || SolverHandler.TransformTarget == null)
115115
{
116116
return rotationToSnap;
117117
}
@@ -131,7 +131,7 @@ private Quaternion CalculateDesiredRotation(Vector3 desiredPos)
131131
switch (orientationType)
132132
{
133133
case SolverOrientationType.YawOnly:
134-
float targetYRotation = SolverHandler.TransformTarget != null ? SolverHandler.TransformTarget.eulerAngles.y : 1;
134+
float targetYRotation = SolverHandler.TransformTarget != null ? SolverHandler.TransformTarget.eulerAngles.y : 0.0f;
135135
desiredRot = Quaternion.Euler(0f, targetYRotation, 0f);
136136
break;
137137
case SolverOrientationType.Unmodified:
@@ -141,10 +141,10 @@ private Quaternion CalculateDesiredRotation(Vector3 desiredPos)
141141
desiredRot = CameraCache.Main.transform.rotation;
142142
break;
143143
case SolverOrientationType.FaceTrackedObject:
144-
desiredRot = Quaternion.LookRotation(SolverHandler.TransformTarget.position - desiredPos);
144+
desiredRot = SolverHandler.TransformTarget != null ? Quaternion.LookRotation(SolverHandler.TransformTarget.position - desiredPos) : Quaternion.identity;
145145
break;
146146
case SolverOrientationType.CameraFacing:
147-
desiredRot = Quaternion.LookRotation(CameraCache.Main.transform.position - desiredPos);
147+
desiredRot = SolverHandler.TransformTarget != null ? Quaternion.LookRotation(CameraCache.Main.transform.position - desiredPos) : Quaternion.identity;
148148
break;
149149
case SolverOrientationType.FollowTrackedObject:
150150
desiredRot = SolverHandler.TransformTarget != null ? SolverHandler.TransformTarget.rotation : Quaternion.identity;

0 commit comments

Comments
 (0)