Unity3D碰撞的奇怪行为

本文关键字:碰撞 Unity3D | 更新日期: 2023-09-27 18:27:45

这段代码一定有问题,因为我先将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 ();
    }
}

Unity3D碰撞的奇怪行为

score+=10在您运行的代码中是这样的吗?如果是,则需要在If语句中。然后,您需要使记分网成为一个变量,现在有两种类型,TextMeshScoreMesh,但没有变量,所以使其成为一种类型和一个变量。然后用whatever.text 替换ScoreMesh.text