我为我的比赛做了一个骗子。我不知道该怎么办。阵列超出范围..当我运行游戏并在myStrings中键入键码时,它不会停止添加硬币,当我移动时,它突然终止。谢谢。
private var cheatCode : String[];
var myStrings : String[] = [ "i", "d", "k", "f", "a" ];
private var index: int;
public static var coins : int;
private var coinsBegin : int;
function Start() {
coins = PlayerPrefs.GetInt("Coinss");
cheatCode = myStrings;
index=0;
}
function Update() {
if (Input.anyKeyDown) {
if (Input.GetKeyDown(cheatCode[index])) {
index++;
}
else {
index = 0;
}
}
if (index == cheatCode.Length) {
coins += 100;
PlayerPrefs.SetInt ("Coinss", coins);
coinsBegin++;
PlayerPrefs.GetInt("Coinss");
}
}
function OnGUI () {
GUI.Label (Rect (20, 20, 200, 40), "score: " +PlayerPrefs.GetInt("Coinss"));
}
//Error:
This one is the picture of the error
我不知道该怎么做。数组超出范围..当我运行游戏并在myStrings中键入键码时,它突然终止。谢谢。
我不知道该怎么做。数组超出范围..当我运行游戏并在myStrings中键入键码时,它突然终止。谢谢。
答案 0 :(得分:3)
输入作弊码后,每次调用更新方法时都会应用作弊。如果键入作弊码的另一个字符,则索引会递增并导致数组超出范围。 尝试在接受作弊码时重置索引:
if (index == cheatCode.Length) {
coins += 100;
PlayerPrefs.SetInt ("Coinss", coins);
coinsBegin++;
PlayerPrefs.GetInt("Coinss");
index = 0; //reset index
}