我对编程和为学校作业做一个简单的赛车游戏相对较新。我之前从未使用过Unity或C#,而且我遇到了一个问题,如果有人可以帮助我,我会非常感激。
所以我用GUI文本区显示时间和圈数,工作正常。但我也希望随着汽车到达我的检查站,圈数会增加,但是,它不起作用。当我在玩游戏时,它仍然会说" Laps:0"当我点击检查点时,在GUI文本区域,即使它应该说" Laps:1"。
我想也许我必须在void Update()中做一些事情,但我不知道是什么。我已经尝试了很多不同的东西,但到目前为止,没有任何作用。
public float timeLeft = 150f;
public int laps = 0;
void Update()
{
timeLeft -= Time.deltaTime;
}
void OnGUI()
{
GUI.TextArea (new Rect (10, 10, 150, 20), "Time left: " + timeLeft + "\nLaps: " + laps);
}
void OnTriggerEnter (Collider other)
{
if (other.gameObject.tag == "Checkpoint")
{
laps = laps + 1;
}
}
希望比我更了解情况的人能够帮助解决这个问题。
答案 0 :(得分:2)
您需要检查是否确实发生了与触发器的碰撞。
只有在以下情况下才会发生触发和碰撞:
Unity Doc:
此消息被发送到触发器对撞机和刚体(或者 碰撞器,如果没有刚体)触及触发器。笔记: 仅当其中一个碰撞器也有一个时,才会发送触发事件 刚体附着...