i want to know whether unity calls the methods we don’t override in monobehavior or not, for example if i don’t override OnDrawGizmos does it get called later or just ignored ? and if ignored how does unity detect overidden methods exactly
Here is the explanation: https://blogs.unity3d.com/2015/12/23/1k-update-calls/
Those methods AREN’T overriden.
You may be thinking that MonoBehavior has abstract methods for Update, OnDrawGizmos and so on, and you’re overriding those. But that’s not the case.
Instead, Unity engine looks for monobehavior method by name using reflection, and call those if they were found. (They’re looked up only once then cached). So, MonoBehavior does not have a prototype for “Update” and you aren’t overriding that, instead you’re providing brand new Update() method, and the engine calls it if it is present.
And, yes “1k calls” explains how it works.
https://blogs.unity3d.com/2015/12/23/1k-update-calls/