Adding text to 2D objects in scene (Tried with TMP)

Hi all! My question is very simple:
I want to add numbers over 2D tiles (Making a fallout 1 & 2 style trimetric game).
The 2D tile is a gameobject with a sprite.
I managed to get this with textmeshpro:

(Lines are a bit crooked due to pixel interpolation)
The problem comes due to TMP attaching a canvas to every one of the gameobject and at for example 100x100 tiles, the script to generate this grid starts being extremely slow (because of having to access every canvas and TMPro object and set them to a value).

How can I do this more efficiently? Maybe to have one canvas and translate worldspace coordinates to screen space coordinates but idk how.

There are two versions of tmpro you can use, one for UI, and one for world space objects. The normal world space version doesn’t need a canvas.

Alternatively you can move all of your textmeshpro ugui objects into one canvas.