Event function after Start?

Is there any event function I can subscribe to that happens after canvas performs its layout?

I am using Canvas.ForceUpdateCanvases()

But this doesn’t seem like the best solution to me. I am hoping that there is a function like Start() that runs only once but after all other layout is complete.


No, there is none: Unity - Manual: Order of execution for event functions

You can, however, trigger a “wait for one frame and then do a thing”, for example with a coroutine:

private void Start()

private IEnumerator DoStuffNextFrame()
    yield return null; // wait one frame