says “Matrices in unity are column major.” but the implementation of Matrix4x4.MultiplyPoint seems to do row-major access by multiplying row vectors of the matrix with the column vector. What’s the reason behind this implementation?
From this information we can say that the first number in the variable names referes to the row index and the second to the column index: “m(r)(c)”
m00
||
|\__ column index
\___ row index
So the first column is made up of those values: m00 m10 m20 m30
According to the indexer layout it’s column major and that’s also how it’s used. The only thing that’s actually row major is the actual memory layout of the float values in the struct. That might be necessary for the native code. However since in C# you can’t access the fields in declaration order the order of the index