Yes, this is necessary if you want to allow asymmetric equality tests:
bool foo = (yourVector3 == 5);
bool bar = (5 == yourVector3);
Without the first version, you will get a compile-time error saying something like "Operator" == 'cannot be applied to operands like "Vector3" and "int". Without the second version, the error will say something like "Operator" == 'cannot be applied to operands like "int" and "Vector3".
source
share