Switching between characters using Scriptable objects

Hi, I need some help on how to make a system where you can change characters that have different speeds and powers using Scriptable objects but making it so the character’s position stays the same. I have searched the web for this but nothing has come up.

Give your character a function like

public void PopulateStatsFrom(MyScriptableObject so) {
  // Read all the data from the SO into your character here
}

Thanks for that but lets say my scriptabel object sample would have this

public new string name;
public float speed;
public float maxhealth;
public Sprite sprite;
public int attack;
public string type;

It does no work and only has this:

6645613--758896--upload_2020-12-21_14-48-26.png

For some reason only the public string name gets picked and the end curly brackets go back a tab

Sorry if i didnt get what you were trying to say. I have just begun c# but not programing so I know a bit.