In an ideal world, this would be a really stupid question, but Unity seems to make a sport out of making incredibly basic functionality simply not work unless you engage in arcane, unintuitive procedures that are given no explanation in the official documentation.
In Windows, I copy and paste a TTF font into a Fonts subfolder of the Assets folder of my project. I then go into the editor; the font is there in Assets > Fonts. So far, so good. Next, I create a 3D Text GameObject in the project view, and I click it. In the inspector under Text Mesh, I see an exposed Font property; I drag my custom TTF font from Assets > Fonts onto the property. The Font is now set in the Inspector! However, for reasons unknown, the 3D Text GameObject continues to display “Hello World” in Arial:
I can only assume that there is some hidden extra step I have to follow in order to actually make the 3D text mesh’s font change, but I have yet to find it. (Please tell me that I don’t have to program a new font shader and put it into a new material and then put that onto my GameObject.)