I've noticed that if I have some variables exposed to the Unity inspector such as:
[SerializeField] GameObject _tickIcon;
If I leave them unassigned and try to use the null conditional operator and call a method on that object I get an exception saying the variable is not assigned. So basically instead of doing this:
_tickIcon?.SetActive(false);
It's forcing me to do this:
if(_tickIcon != null)
{
_tickIcon.SetActive(false)
}
So I'm guessing this must be something specific to unity's runtime, it's not really null, but I can check for null and it work. I don't really understand this.