store character position

How can I store a character's position, then later have the character start from that position?

what do you mean by storing. do you want to store it for later sessions of the game? if yes you should use PlayerPrefs and SetFloat method to store all transform.position.x and .y and .z and then read them by GetFloat method. if you want to store them for later use during current game session just put them in a static vector3. create something like

static Vector3 initialpos;

then write yourclassname.initialpos = transform.position; and read it back. also if you don't want to use static variables just create a GameObject and use DontDestroyOnLoad and add a component for storing positions to it.

Use PlayerPrefs.SetFloat to store the x, y, and z components of the character's position, and then PlayerPrefs.GetFloat to read it in again. Also you probably want to save the rotation or eulerAngles.