Можно легко переделать на прямой вызов метода. И никаких забот на юзера здесь не возложено, если делать грамотно.
Class IWithAwake
Method New()
AddHook(AWAKEHOOK, Self)
End
Method Awake:Void()
End
Class IWithStart
Method New()
AddHook(STARTHOOK, Self)
End
Method Start:Void()
End
Class IWithUpdate
Method New()
AddHook(UPDATEHOOK, Self)
End
Method Update:Void()
End
Class IWithLateUpdate
Method New()
AddHook(LATEUPDATEHOOK, Self)
End
Method LateUpdate:Void()
End
Class IWithDraw
Method New()
AddHook(DRAWHOOK, Self)
End
Method Draw:Void()
End