Цель
Показывать настоящее здоровье персонажа в интерфейсе.
Подготовка и расположение объектов
StarterGui → ScreenGui (ResetOnSpawn=false) → Frame HealthBar → Frame Fill; LocalScript внутри ScreenGui.
Пошаговая работа
- Создай панель HealthBar размером 240×25 и внутренний Fill, который занимает всю ширину.
- Вставь LocalScript в ScreenGui. Не помещай его в ServerScriptService.
- Запусти Play и уменьши здоровье персонажа через тестовую опасную деталь.
Код Luau
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local bar = script.Parent:WaitForChild("HealthBar")
local fill = bar:WaitForChild("Fill")
local connection
local function bindCharacter(character)
if connection then connection:Disconnect() end
local humanoid = character:WaitForChild("Humanoid")
local function update()
local fraction = math.clamp(humanoid.Health / math.max(humanoid.MaxHealth, 1), 0, 1)
fill.Size = UDim2.fromScale(fraction, 1)
fill.BackgroundColor3 = Color3.fromRGB(255 * (1 - fraction), 200 * fraction, 75)
end
connection = humanoid.HealthChanged:Connect(update)
update()
end
player.CharacterAdded:Connect(bindCharacter)
if player.Character then bindCharacter(player.Character) endПроверяем результат
Полоска уменьшается при уроне и восстанавливается при возрождении.
Частая ошибка
Убедись, что внутри HealthBar существует Fill и что код стоит в LocalScript.
Усложнение
Добавь TextLabel с надписью о количестве здоровья.
Для преподавателя
Проверь результат в Play и в эмуляторе мобильного устройства. Сделай собственные скриншоты Roblox Studio перед публикацией.
