carrying player data from one scene to the next

what i mean by the question, is that i have a game where you go from level to level, but i want the player to keep his/her weapons.

is there a way to save the player as a prefab, and when entering another scene, use the same prefab as before?

Options include:

  1. PlayerPrefs as @killan277 said.
  2. GameObjects with dontdestroyonload
  3. ScriptableObjects
  4. Class with static member variables.