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?