У меня есть очень простой скрипт, который отображает таймер на интерфейсе Unity 5. На финишной прямой гонщик входит в триггер, и таймер должен остановиться. Это не так. Я не ошибаюсь, он просто работает, как Форрест Гамп! Я планирую отправлять результаты таймера в таблицу лидеров, если я могу остановить таймер. Вот мой скрипт таймер:C# Таймер не останавливается при включении триггера
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Timer : MonoBehaviour
{
public Text timerText;
private float startTime;
private bool finished = false;
// Use this for initialization
void Start() {
startTime = Time.time;
}
// Update is called once per frame
void Update() {
if(finished)
return;
float t = Time.time - startTime;
string minutes = ((int) t/60).ToString();
string seconds = (t % 60).ToString("f2");
timerText.text = minutes + ":" + seconds;
}
public void finish()
{
finished = true;
timerText.color = Color.yellow;
}
}
На сработавшей куб я haved поместил следующий сценарий:
using UnityEngine;
using System.Collections;
public class WinBox : MonoBehaviour
{
private void onTriggerEnter(Collider other)
{
GameObject.Find("Green").SendMessage("Finish");
}
}
Я изменил обнаружение столкновений с непрерывным на RigidBody моему это более чувствительным не повезло , Сделал куб толще. Нет, он просто продолжает тикать. Автомобиль «Зеленый» находится в индексированном контейнере/пустом игровом объекте. Это сетевая многопользовательская игра, поэтому ее, вероятно, следует переписать, чтобы найти игровой объект с тегом, игроком. Или каким-то образом первый помеченный игровой объект входит в триггер. Я думаю, что проблема - «Отправить сообщение». Я никогда с этим не работала. Изменение цвета текста также не сработало, но его необходимо изменить, чтобы включить частицы конфетти, когда таймер остановится. Любая помощь будет принята с благодарностью.
Вы смогли решить предлагаемые решения? – GLES