Roblox · Дополнительное
Табличка у дороги: издалека пустая, подходишь ближе 15 studs — на ней плавно проявляется совет. У каждого игрока — по своему расстоянию.
Синим — что нужно создать.
Workspace └─ Signs (Folder) — все таблички └─ Sign1 (Model) ├─ Post (Part) — столб └─ Board (Part) — доска └─ SurfaceGui (SurfaceGui) — Face — к дороге └─ TextLabel (TextLabel) — текст; TextTransparency 1 StarterPlayer → StarterPlayerScripts └─ SignLocal (LocalScript)
Где: StarterPlayer → StarterPlayerScripts · LocalScript
Зачем: Проявляет текст рядом.
-- игроки
local Players = game:GetService("Players")
-- плавность
local TS = game:GetService("TweenService")
-- этот игрок
local player = Players.LocalPlayer
-- все таблички
local signs = workspace:WaitForChild("Signs")
-- ближе — текст проявляется
local DISTANCE = 15
-- табличка → показана ли
local shown = {}
-- постоянно
while true do
-- 5 раз в секунду
task.wait(0.2)
-- где игрок
local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
-- каждая табличка
for _, sign in ipairs(signs:GetChildren()) do
-- доска с текстом
local board = sign:FindFirstChild("Board")
-- текст
local label = board and board:FindFirstChild("SurfaceGui") and board.SurfaceGui:FindFirstChild("TextLabel")
-- есть
if label then
-- рядом?
local near = root ~= nil and (root.Position - board.Position).Magnitude <= DISTANCE
-- состояние сменилось
if near ~= (shown[sign] or false) then
-- запоминаем
shown[sign] = near
-- проявить или спрятать — только у этого игрока
TS:Create(label, TweenInfo.new(0.4), {TextTransparency = near and 0 or 1}):Play()
-- конец проверки
end
-- конец проверки
end
-- конец перебора
end
-- конец цикла
endЗапусти Play (или Run) и убедись: