item ??= item2 implemented as== operator is changed by the class, it will not use said operator, instead using the default == operator of object.== operator is changed by all unity objects, the ??= operator cannot be used.?? operator also cast to object before null checking, or does it use something else completely, like pattern matching? I've used https://sharplab.io to see the lowering of ??, but it doesn't appear to be lowered.