TextMesh is the way to go with what you are looking for, as you are displaying these cards in a plane. This component wouldn't be a valid choice with non flat surfaces.
Add an empty gameobject to your card as a child and then add TextMesh as a component -> Add Component / Mesh / TextMesh. Put the text you need and, after that, you have to adjust the text to where you want it, do it moving the position of the gameObject. Notice that if the father objects aren't with a 1-1-1 Scale, the text will be deformed, if thats the case you'll need to change your object organization and move the text by script instead using it as a child.
If you rotate the card, you'll notice that the text overlaps above every mesh in the scene, even your own card. To avoid this you need to use a custom shader for the "TextMesh" that will make it render like any other object in the scene.
This is the shader:
Shader "Text/TextNonOverlap Shader" { Properties { _MainTex ("Font Texture", 2D) = "white" {} _Color ("Text Color", Color) = (1,1,1,1) } SubShader { Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } Lighting Off Cull Off ZWrite Off Fog { Mode Off } Blend SrcAlpha OneMinusSrcAlpha Pass { Color [_Color] SetTexture [_MainTex] { combine primary, texture * primary } } } }
To use the shader, you need a font in your project, anyone will work. Create a material and put this shader on it, then pick the font you chose and assign it's "Font Texture" in the same field "Font Texture" of the material, this is important.
Then, in the gameobject with the TextMesh, change the font to the one you selected, the same as the one you put it's Font Texture on the material or it won't work. Select in the component MeshRenderer "Materials -> Element 0" and put the material you just created on it, now you have a text that won't overlap, to change it's color just change the color of the material.
It's not complicated but it's easy to mesh up, so be careful.
P.S: Yeah, the text can go outside the card but, as you can see, even hearthstone used a similar approach
