```
Translate(targetVelocity * PlayerBody.GlobalTransform.basis); //BAD
```

has different results than

```
Translate(PlayerBody.Transform.basis * targetVelocity); //GOOD
```

Why is this?

I thought order didn't matter with multiplication (ex. 4x3 == 3x4)

Is it something to do with the fact its a matrix?

Enlighten me.