【发布时间】:2014-04-05 10:16:45
【问题描述】:
由于某种原因,我的第二个 if 语句之后的所有内容都不起作用。当我删除该 if 语句 ie.( if Texture == blue ) 时,下面的 if 语句运行,这就是我需要它做的。但我需要它,因为当纹理为蓝色时。有谁知道这个问题的解决方案?它让我发疯。顺便说一句,没有编译错误或任何东西。我认为这是一个直接的逻辑问题。
var blue : Texture;
function OnCollisionEnter(col : Collision){
if(col.collider.name == "Brick3"){
Destroy(col.gameObject);
score += 10;
guiScore.text= "Score: " + score;
renderer.material.mainTexture = blue;
}
if(Texture == blue)
{
if(col.collider.name == "Brick2")
{
Destroy(col.gameObject);
score += 10;
guiScore.text= "Score: " + score;
print("collided with brick");
}
}
}
【问题讨论】:
-
您在
Texture == blue中究竟比较了什么?我可以看到你在哪里声明了blue以及你是如何使用它的,但是Texture看起来不像一个变量...你是要比较if(renderer.material.mainTexture == blue)吗? -
史蒂文是对的。 Protip,使用 Debug.Log 将内容打印到控制台 - 单个“Debug.Log(Texture == blue)”会告诉您该语句是错误的。这是基本的调试实践,如果您能学会理解您的程序,您将在未来更有效地学习和工作。
标签: unity3d monodevelop unityscript