/
dedikins
/
Clicker
Обзор
Документация
Войти
/
dedikins
/
Clicker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Assets/Scripts/AchievementNotification.cs
149 строк
3 KB
dedikins
Добавление системы достижений
26 май 2026, 22:23
26 май 2026, 22:23
fae18ae
Код
Авторство
О чём код?
using TMPro; using UnityEngine; public class AchievementNotification : MonoBehaviour { public static AchievementNotification Instance; [SerializeField] private TextMeshProUGUI notificationText; private float timer; private bool showing; private CanvasGroup canvasGroup; private RectTransform rectTransform; private Vector2 hiddenPosition; private Vector2 visiblePosition; private Vector3 startScale; private void Awake() { Instance = this; canvasGroup = GetComponent<CanvasGroup>(); rectTransform = GetComponent<RectTransform>(); startScale = transform.localScale; visiblePosition = rectTransform.anchoredPosition; hiddenPosition = visiblePosition + Vector2.up * 250f; rectTransform.anchoredPosition = hiddenPosition; canvasGroup.alpha = 0f; } public void Show(string title, string reward) { notificationText.text = $"Достижение получено!\n{title}\n{reward}"; timer = 0f; showing = true; canvasGroup.alpha = 1f; rectTransform.anchoredPosition = hiddenPosition; transform.localScale = startScale * 0.8f; } private void Update() { if (!showing) return; timer += Time.deltaTime; if (timer < 0.3f) { float t = timer / 0.3f; float scale = Mathf.Lerp( 0.8f, 1.15f, t); transform.localScale = startScale * scale; } else if (timer < 0.6f) { float t = (timer - 0.3f) / 0.3f; float scale = Mathf.Lerp( 1.15f, 1f, t); transform.localScale = startScale * scale; } if (timer < 0.5f) { rectTransform.anchoredPosition = Vector2.Lerp( hiddenPosition, visiblePosition, timer / 0.5f); } if (timer > 2f) { canvasGroup.alpha = Mathf.Lerp( 1f, 0f, (timer - 2f) / 1f); } if (timer > 2f) { float t = (timer - 2f) / 1f; canvasGroup.alpha = Mathf.Lerp( 1f, 0f, t); rectTransform.anchoredPosition = Vector2.Lerp( visiblePosition, hiddenPosition, t); } if (timer >= 3f) { showing = false; canvasGroup.alpha = 0f; rectTransform.anchoredPosition = hiddenPosition; transform.localScale = startScale; } } }