"Awake(), Start(), Update() and other built-in Monobehaviour methods are scripted in a special manner so that--unlike standard methods in C# class inheritance--you don't need to use the ... override keyword."
Because of course they are.
#unity #unity3d #cSharp #GameDev #SyntacticSugar #YoureNotTheBossOfMe #WhenIUseAWordItMeansJustWhatIChooseItToMean #DoWhatThouWiltShallBeTheWholeOfTheLaw
@peterdrake There's a good reason behind this one, though. It allows it to only hook those functions up if they exist, through the magic of Reflection. If they were virtual or abstract, there would be massively increased overhead calling every function on every object, 90% of which are just empty braces.