Я относительно новичок в программировании и прохождении гоночной игры для школьного задания. Я никогда раньше не работал с Unity или C#, и я столкнулся с проблемой, которая была бы очень признательна, если бы кто-то мог мне помочь.Единство, отображающее круги с графическим интерфейсом Текстовая область
Итак, я показываю время и кружки с текстовой областью графического интерфейса, которая работает нормально. Но я также хочу, чтобы круги увеличивались по мере того, как машина добиралась до моего контрольно-пропускного пункта, однако она не работает. Когда я играю в игру, она все еще говорит «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;
}
}
Надеюсь, кто-то более осведомленный, чем я, сможет помочь с этой проблемой.
Я довольно уверен, что Коллисон работает, потому что я только что понял, что что-то на самом деле происходит, когда я ударил контрольно-пропускной пункт. Моя текстовая область GUI по-прежнему говорит «Laps: 0», но под этим вы можете увидеть другой, гораздо более слабый текст, который говорит «Laps: 1», и я действительно не знаю, почему. Фу, это сводит меня с ума. – Lynchian
Можете ли вы использовать Debug.Log, чтобы увидеть поведение «кругов»? Если вы начинаете с другого значения, «кругов» по-прежнему остается на экране? – mayo
У вас есть несколько экземпляров этого скрипта в игре? что объясняет «слабую» версию, поскольку она будет рисовать дважды. –