When I call Object.Destroy on a UnityEngine.Object instance it eventually gets destroyed and evaluates to null. The rest of this post here is assumption.
Afaik this is not a standard thing for C#/.net with garbage collecting so I assume whats actually going on is UnityEngine.Object overrides the equals operator so that once its marked as destroyed it evaluates to null.
If this is how unity does it, Does that mean that any reference to the object still existing after its been destroyed is still holding some data from being collected?
Its very easy to hold a reference of something, For example if you use events and event handlers or have a list.
For this reason for things like events i always use the OnDestroy function to remove a event handler inside the component or scriptable object from any events its been added to.
Basically it’d be good to know how its actually working under the scenes because if i didnt have to do things like above i wouldnt. If its actually setting all things that reference it to null somehow, or if the equality operator override is actually making the garbage collector collect that would be great, but again it’d be good to have some reassurance it is.