Unity RPG对话

时间:2014-02-12 14:34:33

标签: unity3d unityscript

我正在尝试为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'

我希望有人可以帮助我!

1 个答案:

答案 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