diff --git a/Assets/Cryville/Common/Pdt/PdtVariableMemory.cs b/Assets/Cryville/Common/Pdt/PdtVariableMemory.cs
index 6fe2644..936d0da 100644
--- a/Assets/Cryville/Common/Pdt/PdtVariableMemory.cs
+++ b/Assets/Cryville/Common/Pdt/PdtVariableMemory.cs
@@ -46,7 +46,7 @@ namespace Cryville.Common.Pdt {
/// A number.
/// The span at the offset does not represent a number.
public float AsNumber(int offset = 0) {
- if (Type != PdtInternalType.Number)
+ if (Type != PdtInternalType.Number && Type != PdtInternalType.Vector)
throw new InvalidCastException("Not a number");
float value;
byte* ptr = (byte*)&value;
@@ -62,7 +62,7 @@ namespace Cryville.Common.Pdt {
/// The span at the offset does not represent a number.
/// The length of the span is not sufficient.
public void SetNumber(float value, int offset = 0) {
- if (Type != PdtInternalType.Number)
+ if (Type != PdtInternalType.Number && Type != PdtInternalType.Vector)
throw new InvalidCastException("Not a number");
if (Length < sizeof(float) + offset)
throw new InvalidOperationException("Frame length not sufficient");