Урок Roblox StudioЗанятие 4 / 8

Уведомление о награде

Дать игроку понятную обратную связь

Уведомление о награде
Иллюстрация к теме занятия

Цель

Показать красивое уведомление при увеличении количества звёзд.

Подготовка и расположение объектов

StarterGui → ScreenGui → TextLabel RewardLabel (Visible=false); LocalScript внутри ScreenGui. В игре уже должен существовать leaderstats.Stars.

Пошаговая работа

  1. Подготовь RewardLabel и скрой его через Visible=false.
  2. Добавь LocalScript.
  3. Собери настоящую звезду в игре и посмотри на сообщение.

Код Luau

local player = game:GetService("Players").LocalPlayer
local label = script.Parent:WaitForChild("RewardLabel")
local stars = player:WaitForChild("leaderstats"):WaitForChild("Stars")
local previous = stars.Value
local version = 0
label.Visible = false
stars:GetPropertyChangedSignal("Value"):Connect(function()
    local current = stars.Value
    if current > previous then
        version += 1
        local id = version
        label.Text = "+" .. (current - previous) .. " ⭐"
        label.Visible = true
        task.delay(1.5, function()
            if version == id then label.Visible = false end
        end)
    end
    previous = current
end)

Проверяем результат

Уведомление появляется при росте Stars и не появляется после покупки, когда Stars уменьшается.

Частая ошибка

Звёзды начисляет только сервер: LocalScript показывает результат и не изменяет валюту.

Усложнение

Добавь плавное появление через TweenService.

Для преподавателя

Проверь результат в Play и в эмуляторе мобильного устройства. Сделай собственные скриншоты Roblox Studio перед публикацией.

Проверь свою работу

Перед тестом убедись, что ты выполнил практику самостоятельно.

Эти отметки — личная памятка, они не влияют на звёзды.

Проверь себя

Ответь на вопросы урока. Успешный тест даёт одну звезду в личном кабинете.

⭐ Проверь свои знания

5 вопросов по теме урока. За 4 правильных ответа получишь звезду. Повторные попытки разрешены.

1. Игрок получил 1 звезду, но затем потратил 2. Когда логично показать «+1 звезда»?
2. Почему хранить предыдущее значение счётчика полезно?
3. Какой тип объекта обычно показывает текст уведомления в ScreenGui?
4. Поступило три награды подряд. Как избежать наложения трёх уведомлений?
5. Кто должен определять, действительно ли собрана звезда?