Skip to content

Commit 60dbaad

Browse files
committed
Invalid pointers no longer throw.
1 parent 9deb5c1 commit 60dbaad

25 files changed

+55
-41
lines changed

Runtime/Scripts/Interactivity/Playback/BehaviourEngine.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,15 +103,15 @@ public bool TryGetPointer(string pointerString, BehaviourEngineNode engineNode,
103103
try
104104
{
105105
pointer = pointerResolver.GetPointer(pointerString, engineNode);
106-
return true;
107106
}
108107
catch (Exception ex)
109108
{
110-
Debug.LogWarning(ex);
109+
Debug.LogException(ex); // Feeding in a really malformed pointerString could throw maybe?
111110

112-
pointer = default;
113-
return false;
111+
pointer = PointerHelpers.InvalidPointer();
114112
}
113+
114+
return !pointer.invalid;
115115
}
116116

117117
public void SetAnimationWrapper(GLTFInteractivityAnimationWrapper wrapper, Animation animation)

Runtime/Scripts/Interactivity/Playback/Data/Helpers/Pointers.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,18 @@
44
using Unity.Mathematics;
55
using UnityEngine;
66

7-
namespace UnityGLTF.Interactivity.Playback.Materials
7+
namespace UnityGLTF.Interactivity.Playback
88
{
99
public static class PointerHelpers
1010
{
11+
public static Pointer<int> InvalidPointer()
12+
{
13+
return new Pointer<int>()
14+
{
15+
invalid = true
16+
};
17+
}
18+
1119
public static Pointer<T> CreatePointer<T>(Action<T> setter, Func<T> getter, Func<T, T, float, T> evaluator)
1220
{
1321
return new Pointer<T>()

Runtime/Scripts/Interactivity/Playback/Pointers/ActiveCameraPointers.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public IPointer ProcessActiveCameraPointer(StringSpanReader reader)
4545
{
4646
var a when a.Is("translation") => translation,
4747
var a when a.Is("rotation") => rotation,
48-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
48+
_ => PointerHelpers.InvalidPointer(),
4949
};
5050
}
5151
}

Runtime/Scripts/Interactivity/Playback/Pointers/AnimationPointers.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ var a when a.Is(Pointers.MIN_TIME) => pointer.minTime,
4141
var a when a.Is(Pointers.MAX_TIME) => pointer.maxTime,
4242
var a when a.Is(Pointers.PLAYHEAD) => pointer.playhead,
4343
var a when a.Is(Pointers.VIRTUAL_PLAYHEAD) => pointer.virtualPlayhead,
44-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
44+
_ => PointerHelpers.InvalidPointer(),
4545
};
4646
}
4747
}

Runtime/Scripts/Interactivity/Playback/Pointers/CameraPointers.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public static IPointer ProcessCameraPointer(StringSpanReader reader, BehaviourEn
8080
{
8181
var a when a.Is("orthographic") => ProcessOrthographicPointer(reader, pointer),
8282
var a when a.Is("perspective") => ProcessPerspectivePointer(reader, pointer),
83-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
83+
_ => PointerHelpers.InvalidPointer(),
8484
};
8585
}
8686

@@ -95,7 +95,7 @@ var a when a.Is("aspectRatio") => pointer.perspectiveAspectRatio,
9595
var a when a.Is("yfov") => pointer.perspectiveYFov,
9696
var a when a.Is("zfar") => pointer.zFar,
9797
var a when a.Is("znear") => pointer.zNear,
98-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
98+
_ => PointerHelpers.InvalidPointer(),
9999
};
100100
}
101101

@@ -110,7 +110,7 @@ var a when a.Is("xmag") => pointer.orthographicXMag,
110110
var a when a.Is("ymag") => pointer.orthographicYMag,
111111
var a when a.Is("zfar") => pointer.zFar,
112112
var a when a.Is("znear") => pointer.zNear,
113-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
113+
_ => PointerHelpers.InvalidPointer(),
114114
};
115115
}
116116
}

Runtime/Scripts/Interactivity/Playback/Pointers/Materials/BaseColor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static IPointer ProcessExtensionsPointer(StringSpanReader reader, BaseCol
4141
var a when a.Is("offset") => pointers.transformPointers.offset,
4242
var a when a.Is("rotation") => pointers.transformPointers.rotation,
4343
var a when a.Is("scale") => pointers.transformPointers.scale,
44-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
44+
_ => PointerHelpers.InvalidPointer(),
4545
};
4646
}
4747
}

Runtime/Scripts/Interactivity/Playback/Pointers/Materials/Clearcoat.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ var a when a.Is("clearcoatRoughnessTexture") => ClearcoatRoughnessPointers.Proce
4242
// TODO: This property is not mentioned anywhere in the PBRGraph UnityGLTF shader so I didn't include it.
4343
//var a when a.Is("clearcoatNormalTexture") => ,
4444

45-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
45+
_ => PointerHelpers.InvalidPointer(),
4646
};
4747
}
4848

@@ -58,7 +58,7 @@ public static IPointer ProcessExtensionsPointer(StringSpanReader reader, Clearco
5858
var a when a.Is("offset") => pointers.transformPointers.offset,
5959
var a when a.Is("rotation") => pointers.transformPointers.rotation,
6060
var a when a.Is("scale") => pointers.transformPointers.scale,
61-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
61+
_ => PointerHelpers.InvalidPointer(),
6262
};
6363
}
6464
}

Runtime/Scripts/Interactivity/Playback/Pointers/Materials/ClearcoatRoughness.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static IPointer ProcessExtensionsPointer(StringSpanReader reader, Clearco
3939
var a when a.Is("offset") => pointers.transformPointers.offset,
4040
var a when a.Is("rotation") => pointers.transformPointers.rotation,
4141
var a when a.Is("scale") => pointers.transformPointers.scale,
42-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
42+
_ => PointerHelpers.InvalidPointer(),
4343
};
4444
}
4545
}

Runtime/Scripts/Interactivity/Playback/Pointers/Materials/Emissive.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static IPointer ProcessExtensionsPointer(StringSpanReader reader, Emissiv
3939
var a when a.Is("offset") => pointers.transformPointers.offset,
4040
var a when a.Is("rotation") => pointers.transformPointers.rotation,
4141
var a when a.Is("scale") => pointers.transformPointers.scale,
42-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
42+
_ => PointerHelpers.InvalidPointer(),
4343
};
4444
}
4545
}

Runtime/Scripts/Interactivity/Playback/Pointers/Materials/Iridescence.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ var a when a.Is("iridescenceThicknessMaximum") => matPointer.iridescenceThicknes
4444
var a when a.Is("iridescenceTexture") => ProcessExtensionsPointer(reader, matPointer.iridescencePointers),
4545
var a when a.Is("iridescenceThicknessTexture") => IridescenceThicknessPointers.ProcessExtensionsPointer(reader, matPointer.iridescenceThicknessPointers),
4646

47-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
47+
_ => PointerHelpers.InvalidPointer(),
4848
};
4949
}
5050

@@ -60,7 +60,7 @@ public static IPointer ProcessExtensionsPointer(StringSpanReader reader, Iridesc
6060
var a when a.Is("offset") => pointers.transformPointers.offset,
6161
var a when a.Is("rotation") => pointers.transformPointers.rotation,
6262
var a when a.Is("scale") => pointers.transformPointers.scale,
63-
_ => throw new InvalidOperationException($"Property {reader.ToString()} is unsupported at this time!"),
63+
_ => PointerHelpers.InvalidPointer(),
6464
};
6565
}
6666
}

0 commit comments

Comments
 (0)