Скрипт для отображения уведомления о пройденных метрах в Unity 3D
Вот пример скрипта, который будет отслеживать пройденное расстояние и показывать уведомление каждые 10 метров:
using UnityEngine;
using UnityEngine.UI;
public class DistanceTracker : MonoBehaviour
{
public Text notificationText; // Ссылка на UI элемент Text для уведомлений
private float distanceTraveled = 0f; // Общее пройденное расстояние
private Vector3 lastPosition; // Последняя позиция персонажа
private float notificationDistance = 10f; // Расстояние для уведомления
void Start()
{
lastPosition = transform.position; // Запоминаем начальную позицию
notificationText.text = ""; // Очищаем текст уведомления
}
void Update()
{
// Вычисляем пройденное расстояние с последнего кадра
float distanceThisFrame = Vector3.Distance(lastPosition, transform.position);
distanceTraveled += distanceThisFrame; // Обновляем общее пройденное расстояние
lastPosition = transform.position; // Обновляем последнюю позицию
// Проверяем, достигнуто ли расстояние для уведомления
if (distanceTraveled >= notificationDistance)
{
ShowNotification(); // Показываем уведомление
distanceTraveled = 0f; // Сбрасываем пройденное расстояние
}
}
void ShowNotification()
{
notificationText.text = "Вы прошли " + notificationDistance + " метров!";
Invoke("ClearNotification", 3f); // Удаляем уведомление через 3 секунды
}
void ClearNotification()
{
notificationText.text = ""; // Очищаем текст уведомления
}
}
🟦 📚 Объяснение кода:
1. notificationText - Ссылка на объект UI `Text`, где будет отображаться уведомление.
2. distanceTraveled - Общее пройденное расстояние.
3. lastPosition - Хранит последнюю позицию объекта для расчета пройденного расстояния.
4. notificationDistance - Расстояние, после которого будет показано уведомление.
5. ShowNotification() - Метод для показа уведомления и его очищения через 3 секунды.
🟦 ⚙️ Как использовать:
1. Создайте новый UI текстовый элемент (например, в Canvas) и назначьте его в переменной `notificationText` в инспекторе.
2. Создайте скрипт и назовите его `DistanceTracker.cs`.
3. Скопируйте и вставьте указанный выше код в этот скрипт.
4. Прикрепите скрипт к объекту, который вы хотите отслеживать (например, к персонажу).
Теперь каждые 10 метров на экране будет появляться уведомление!
Комментариев 3