Currently I’m handling my game control as part of the OnTriggerEnter2D event, everything works fine, however the game looks slow at times, so in order to optimize performance I want to move such code to a co-routine, however I still will be creating, updating and destroying objects inside OnTriggerEnter2D as it is the natural place to do so…

I don’t have enough knowledge or experience in Unity, so I have a big doubt here: should I worry about synchronization or not??? If the co-routine is called from the same thread as the OnTriggerEnter2D event, then I don’t even need to worry about synchronization, however if different threads are involved I better provide a synchronization method otherwise things can go really really wrong.

Anyone with experience in co-routines can provide some light please?

Coroutines run in the main thread, like most parts of scripting environment. So you don’t have to worry about synchronization. The only things which might run in parallel are internal background things you usually don’t have access to.