← Все вопросы

Как сделать кнопку в Roblox, на которую нажимаешь и открывается дверь?

Задан 3 месяца назад467 просмотров2 ответа
5

Хочу классику: подходишь к кнопке (детали), наступаешь — открывается дверь (другая деталь становится прозрачной и проходимой). Как связать две детали через скрипт?

2 ответа

8
✓ Принятый ответ — помог автору

Связываем через событие касания кнопки, а в ответ меняем свойства двери. Положи Script в кнопку:

local button = script.Parent
local door = workspace.Door

button.Touched:Connect(function(hit)
    local humanoid = hit.Parent:FindFirstChild("Humanoid")
    if humanoid then
        door.Transparency = 0.7      -- стала полупрозрачной
        door.CanCollide = false      -- сквозь неё теперь можно пройти
        task.wait(3)
        door.Transparency = 0        -- закрылась обратно
        door.CanCollide = true
    end
end)

Ключевое:

  • CanCollide = false — отключает столкновение, дверь становится проходимой. Без этого прозрачную дверь всё равно нельзя пройти.
  • if humanoid then — чтобы кнопка реагировала на игрока, а не на любой упавший кубик.
  • task.wait(3) + возврат свойств — дверь сама закрывается через 3 секунды.
3

Чтобы дверь не "дёргалась", когда игрок стоит на кнопке (Touched ведь срабатывает часто), добавь флаг:

local isOpen = false
button.Touched:Connect(function(hit)
    if isOpen then return end
    if hit.Parent:FindFirstChild("Humanoid") then
        isOpen = true
        -- открыть... task.wait(3)... закрыть
        isOpen = false
    end
end)

Ваш ответ

Войдите, чтобы ответить на вопрос.