Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование в Roblox Studio

Люблю Жирать Ученик (96), на голосовании 5 месяцев назад
Как сделать в Roblox Studio так, чтобы при взаимодействии с предметами на Е появлялся снизу текст и исчезал через время?
Язык Lua
Голосование за лучший ответ
Артём Петров Мастер (1218) 6 месяцев назад
Для реализации данной функциональности в Roblox Studio на языке Lua необходимо использовать обработчики событий и объекты TextLabel.

Пример кода:

```lua
local Players = game:GetService("Players")
local TextService = game:GetService("TextService")

-- Функция для создания текста под объектом
local function createFloatingText(parent, text)
local textLabel = Instance.new ("BillboardGui")
textLabel.Size = UDim2.new (0, 200, 0, 50)
textLabel.Parent = parent

local text = Instance.new ("TextLabel")
text.Text = text
text.TextColor3 = Color3.new (1, 1, 1)
text.Size = UDim2.new (1, 0, 1, 0)
text.BackgroundTransparency = 1
text.Font = Enum.Font.SourceSans
text.FontSize = Enum.FontSize.Size14
text.Parent = textLabel

spawn(function()
wait(3) -- Время отображения текста в секундах
textLabel:Destroy()
end)
end

-- Обработчик события при наведении на объект
local function onHover()
createFloatingText(script.Parent, "Привет, мир!")
end

-- Привязываем обработчик к событию
script.Parent.MouseEnter:Connect(onHover)
```

В этом примере при наведении мыши на объект будет появляться текст "Привет, мир!", который исчезнет через 3 секунды.

Не забудьте добавить этот скрипт к объекту, с которым вы хотите взаимодействовать.
Александр Профи (603) 6 месяцев назад
 local Players = game:GetService("Players") 
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- Получаем локального игрока
local player = Players.LocalPlayer
-- Получаем GUI для текста
local textLabel = player:WaitForChild("PlayerGui"):WaitForChild("TextLabel")

-- Функция для отображения текста
local function showText(text)
textLabel.Text = text
textLabel.Visible = true
wait(2) -- Время отображения текста (в секундах)
textLabel.Visible = false
end

-- Цикл по всем предметам в Workspace
for _, item in ipairs(workspace:GetDescendants()) do
-- Проверяем, является ли предмет Part
if item:IsA("BasePart") then
-- Подключаем событие MouseClick
item.MouseClick:Connect(function(plr)
-- Проверяем, что кликнул локальный игрок
if plr == player then
showText(item.Name .. " нажат!")
end
end)
end
end
Объяснение:
Получение сервисов и объектов:
Players и ReplicatedStorage - сервисы Roblox для работы с игроками и хранилищем ресурсов.
player - локальный игрок.
textLabel - объект TextLabel, который будет использоваться для отображения текста. Убедитесь, что у вас есть TextLabel внутри PlayerGui локального игрока.
Функция showText:
Принимает текст для отображения.
Устанавливает текст в textLabel.
Делает textLabel видимым.
Ждет 2 секунды.
Скрывает textLabel.
Цикл по предметам:
Проходимся по всем потомкам Workspace.
Проверяем, является ли текущий объект Part (т.е. физическим объектом).
Подключаем событие MouseClick к каждому Part.
Обработка события MouseClick:
Проверяем, что кликнул локальный игрок.
Вызываем функцию showText с именем нажатого объекта.
Важно:
Убедитесь, что у вас есть TextLabel внутри PlayerGui локального игрока и его имя совпадает с именем в коде (TextLabel).
Вы можете изменить время отображения текста в функции showText.
Этот код предполагает, что все предметы, с которыми вы хотите взаимодействовать, являются Part. Если у вас есть другие типы объектов, вам нужно будет изменить код соответствующим образом.
Похожие вопросы