这段代码肯定有问题,因为我首先将Debug.Log放入碰撞中,以确保它有效并且完美运行。问题是得分不规则地起作用,有时增加20,有时减少20,有时保持不变。我必须犯一些我无法看到的愚蠢错误。
public int score = 0;
void OnCollisionEnter (Collision col)
{
if(col.gameObject.name == "Plane")
{
//On collision, add 10 to score, access text, change text to score.
score += 10;
TextMesh ScoreMesh = GameObject.Find("Score").GetComponent<TextMesh>();
ScoreMesh.text = score.ToString ();
}
}
答案 0 :(得分:0)
得分+ = 10就像您运行的代码中的那样?如果是这样,它需要在if语句中。然后你需要让scoremesh成为一个变量,现在你有两种类型,TextMesh
和ScoreMesh
,没有变量,所以把它变成一种类型和一个变量。然后,您将ScoreMesh.text
替换为whatever.text