public static bool ToValueType(this TypeHandle handle, out ValueType typeHandleToValueType) { typeHandleToValueType = ValueType.Unknown; if (handle == TypeHandle.Unknown) { typeHandleToValueType = ValueType.Unknown; return(true); } if (handle == TypeHandle.Bool) { typeHandleToValueType = ValueType.Bool; return(true); } if (handle == TypeHandle.Int) { typeHandleToValueType = ValueType.Int; return(true); } if (handle == TypeHandle.Float) { typeHandleToValueType = ValueType.Float; return(true); } if (handle == TypeHandle.Vector2 || handle == DotsTypeHandle.Float2) { typeHandleToValueType = ValueType.Float2; return(true); } if (handle == TypeHandle.Vector3 || handle == DotsTypeHandle.Float3) { typeHandleToValueType = ValueType.Float3; return(true); } if (handle == TypeHandle.Vector4 || handle == DotsTypeHandle.Float4) { typeHandleToValueType = ValueType.Float4; return(true); } if (handle == TypeHandle.Quaternion || handle == DotsTypeHandle.Quaternion) { typeHandleToValueType = ValueType.Quaternion; return(true); } if (handle == TypeHandle.GameObject || handle == DotsTypeHandle.Entity) { typeHandleToValueType = ValueType.Entity; return(true); } if (handle == TypeHandle.String || handle.IsNativeString()) { typeHandleToValueType = ValueType.StringReference; return(true); } return(false); }