Store user details with PlayerPrefs

Hi guys!

I know that I can use PlayerPrefs to store user data but there are certain things bugging me. Basically, what I want to make is a “Remember me” feature. I’m working on uploading score to a webserver and I want it to be able to auto-complete all the text fields based on the username ONLY. I’ve looked into PlayerPrefsX but I can’t get it to work because it requires Built-In Array and it’s not possible to dynamically push a new username into the array. Since I can’t limit how many usernames to be written into the PlayerPrefs, I can’t simply specify the limit of the array. I’ve been looking for answers but couldn’t find it. Thanks in advance =)

Edit: I’ve tried working on making “auto-complete” feature but I can’t get it to work. I’m not quite sure if the PlayerPrefs is actually working here since I can’t debug it on device because the trigger of PlayerPrefs is based on iPhoneKeyboard.done. Here is the script I’ve written so far:

function RequestInput(){
	if(showGUI){
		if(keyboardUserName){
			userName = keyboardUserName.text;
			if(keyboardUserName.done){
				CheckUserData(userName);
				if(dataExist){
					keyboardPersonName.text = ""+personName;
					keyboardEmail.text = ""+emailAddress;
					keyboardID.text = ""+icNumber;
				}else if(!dataExist){
					personName = keyboardPersonName.text;
					emailAddress = keyboardEmail.text;
					idNumber = keyboardID.text;
				}
			}
		}
	}
}

function CheckUserData(name:String){
	var tempName:String = name;
	for(var i = 0; i < 100; i++){
		if(PlayerPrefs.HasKey(i+"Username")){
			if(PlayerPrefs.GetString(i+"Username") == tempName){
				personName = PlayerPrefs.GetString(i+"Name");
				emailAddress = PlayerPrefs.GetString(i+"Email");
				idNumber = PlayerPrefs.GetString(i+"ID");
				dataExist = true;
				Debug.Log(dataExist);
			}
		}else{
			PlayerPrefs.SetString(i+"Username", userName);
			PlayerPrefs.SetString(i+"Name", personName);
			PlayerPrefs.SetString(i+"Email", emailAddress);
			PlayerPrefs.SetString(i+"IC", idNumber);
			Debug.Log("Username: "+userName +", Name: "+personName +", E-mail:"+emailAddress +", ID: "+idNumber);
			dataExist = false;
			Debug.Log(dataExist);
		}
	}
}

RequestInput() function is called from function OnGUI() so it’s always called after the score uploading screen comes up. Anything wrong in the script?

There’s a limit to how much can be stored in PlayerPrefs, so why not put a big limit, like 100? 1000? and just use that thing.

That said, if stuff is stored on a server, you could also save stuff on the server, and query it to download the fields you want to prepopulate.