【发布时间】:2015-11-06 00:28:39
【问题描述】:
在 Unity 中,我想在玩家进入某个区域时更改场景。该区域有盒子碰撞器,它被设置为触发器,脚本附加到该区域,但是当玩家进入该区域并按下键盘时,什么也没有发生。我没有语法错误,它说一切都很好。可能是什么问题?
代码如下:
var Level = "";
var Player = "";
function OnTriggerStay(other : Collider) {
if(other.tag == Player){
if(Input.GetKeyUp("up")){
Application.LoadLevel(Level);
}
}
}
修改后的代码:
var Level = "";
var Player = "";
function OnTriggerStay (consolelog("Hello"))l;
{
if(other.tag == Player){
if(Input.GetKeyDown("up")){
Application.LoadLevel(Level);
}
}
}
【问题讨论】:
-
好了,一步一步调试吧。按下一个键时你的函数会被触发吗?
-
@Brad 我已经通过在按下键时输出到控制台进行检查,但它什么也没做
-
您是否打算检查标签是否为空?
-
@CrudeLogic 然后您将问题缩小到关键处理程序。您的问题与
Application.LoadLevel(Level)无关。我对Unity一无所知,但更进一步。OnTriggerStay曾经运行过吗?如果有,other.tag中有什么内容?Player中有什么内容?Player真的是空字符串吗? -
@CrudeLogic 我指的是您的
OnTriggerStay,它似乎在按下某个键时被调用。测试每个条件以进一步缩小问题范围。
标签: unity3d unityscript