我正在尝试为RPG游戏制作对话脚本。
这是我现在的代码。
#pragma strict
var keyNext : KeyCode;
var text = new Array();
var page = 0;
function OnCollisionEnter2D(col : Collision2D) {
Debug.Log ("COLLISION DETECTED");
if(col.gameObject.name == "NPC") {
text[0] = "hi";
text[1] = "bye";
} else {
Debug.Log("no text for "+col.gameObject.name);
}
Debug.Log(text.length);
if(Input.GetKey(keyNext) && text.length < page) {
page++;
}
Debug.Log(text[page]);
}
function OnCollisionExit2D(col : Collision2D) {
page = 0;
Debug.Log("walked away");
}
function update () {
}
但它只打印'hi',当我按下keyNext键(空格键)时不会转到'bye'
我希望有人可以帮助我!
答案 0 :(得分:0)
您正在检查OnCollisionEnter2D中的Input.GetKey。尝试将其移至Update-function,如下所示:https://docs.unity3d.com/Documentation/ScriptReference/Input.GetKey.html
此外,您可能需要考虑使用GetKeyUp而不是GetKey; https://docs.unity3d.com/Documentation/ScriptReference/Input.GetKeyUp.html