Причем тут Insert?
Insert - это вставить в строку какую-то подстроку с определенной позиции.
Вот это:
Profile.AllProfiles[0].name.Insert(0,NewProfileName);
всё-равно, что и вот это:
Profile.AllProfiles[0].name = NewProfileName;
Это никаким боком не относится к сохранению и загрузке!
Чтобы была возможность сохранять и загружать профили, пиши, грубо говоря, так:
public class Profile : MonoBehaviour {
[Serializable]
public class _Profile
{
public string name;
public int RAM, HDD, rankRAM, rankHDD;
public DateTime DateTimeBeginHDD;
}
public static _Profile[] AllProfiles;
void Start ()
{
AllProfiles = new _Profile[2];
}
public void Save() {
PlayerPrefs.SetInt("CountProfiles", AllProfiles.Length);
for (int i=0; i<AllProfiles.Length; i++) {
PlayerPrefs.SetString(i+"_name", AllProfiles[i].name);
PlayerPrefs.SetInt(i+"_RAM", AllProfiles[i].RAM);
// И так далее по списку...
}
}
public void Load() {
AllProfiles = new _Profile[PlayerPrefs.GetInt("CountProfiles")];
for (int i=0; i<AllProfiles.Length; i++) {
AllProfiles[i].name = PlayerPrefs.GetString(i+"_name");
AllProfiles[i].RAM = PlayerPrefs.GetInt(i+"_RAM");
// И так далее по списку...
}
}
После этого можешь использовать методы Load и Save для загрузки и сохранения состояний всех профилей одновременно.