What do you mean buy this? DrawText() should be in PostRender() otherwise it won't be seen.
I agree with putting everything HUD related in it's own pivot OR put it ALL in the player script. Since the player script already has access to the weapon prefab entity, which means it can access the weapon script, it can access all the data it needs to do the HUD. Putting it in it's own entity, pivot for example, means you have to think more about exposing the required data to it. That script could have parameters to the player entity and weapon entity to get it's info though and be pretty much the same.
Generally this just defines the functions (I say generally because they can also create global variables). If you define the functions multiple times it's not a big deal since the functions are all the same def anyway.