How do I create sprites at runtime?

In 2D, I want to make a grid of tiles, forming a landscape of grass, mountains &c. I figured the way to do that is to use Sprite.Create to define a 2D array of Sprites. But while that does create “Sprites”, it appears that those are different from what happens if I create a “Sprite” from the main Unity menus, because the runtime Sprite isn’t a GameObject with a transform property that allows me to set the location.

How do I say “create a new object that has texture T, at world coordinates X,Y”? My next step will be to make a Tile class, which I think means making a GameObject that has a SpriteRenderer. Maybe I should be using Instantiate to make those instead?

Sprite.Create creates a sprite that you can assign to the Sprite Renderer Component.

What you would want to do is instantiate a GameObject, attach a Sprite Renderer to that object, and then assign the sprite you just created to the Sprite Renderer of that object.