Roblox · 2D Раннер · урок 6

Подсказка, выход и публикация

Последние штрихи: подсказка «Пробел — старт», кнопка возврата в меню и публикация игры.

Структура

Синим — что добавляем на этом уроке.

StarterGui
├─ HintGui (ScreenGui) — ResetOnSpawn — вкл.
│  └─ Hint (TextLabel) — «Пробел или тап — старт и прыжок»
│     └─ HintScript (LocalScript)
└─ MenuGui (ScreenGui)
   └─ BackButton (TextButton) — «В меню»
      └─ BackScript (LocalScript)

Шаги

  1. Это делаем в плейсе с забегом.
  2. StarterGui → «+» → ScreenGui «HintGui» → TextLabel «Hint» по центру: «Пробел или тап — старт и прыжок». В Hint «+» → LocalScript «HintScript».
  3. ResetOnSpawn у HintGui оставь включённым: после смерти интерфейс создаётся заново, и подсказка снова видна.
  4. StarterGui → «+» → ScreenGui «MenuGui» → TextButton «BackButton» в углу экрана.
  5. Скопируй ID плейса с меню (Asset Manager → Copy ID). В BackButton «+» → LocalScript «BackScript», в первую строку — этот ID.
  6. Если отдельного меню нет, кнопка может просто выводить из игры: player:Kick("До встречи!") вместо телепорта.
  7. Публикация: стартовым местом игры сделай меню (Asset Manager → Places → правой кнопкой → Set as Start Place). Game Settings → Basic Info — название, описание, иконка, скриншоты; Permissions — Public.
  8. Проверь в опубликованной игре весь путь: меню → «Играть» → забег → «В меню».

Скрипты

HintScript

Где: StarterGui → HintGui → Hint · LocalScript
Зачем: Прячет подсказку, когда игрок стартовал.

-- клавиатура и экран
local UIS = game:GetService("UserInputService")
-- надпись-подсказка
local hint = script.Parent

-- при появлении персонажа подсказка видна
hint.Visible = true
-- нажали клавишу или тапнули
UIS.InputBegan:Connect(function(input, gp)
    -- нажатие ушло в чат или на кнопку
    if gp then return end
    -- пробел или тап — старт
    if input.KeyCode == Enum.KeyCode.Space or input.UserInputType == Enum.UserInputType.Touch then
        -- прячем подсказку
        hint.Visible = false
    -- конец проверки
    end
-- конец обработчика
end)

BackScript

Где: StarterGui → MenuGui → BackButton · LocalScript
Зачем: Возвращает игрока в главное меню.

-- ID плейса с главным меню — вставь свой из Asset Manager
local MENU_ID = 0
-- кнопка «В меню»
local button = script.Parent
-- перенос между плейсами
local TeleportService = game:GetService("TeleportService")
-- игрок, который нажал
local player = game.Players.LocalPlayer

-- нажали на кнопку
button.MouseButton1Click:Connect(function()
    -- прячем кнопку — нажать второй раз нельзя
    button.Visible = false
    -- возвращаем в главное меню
    TeleportService:Teleport(MENU_ID, player)
-- конец обработчика
end)

Проверка

Запусти Play (или Run) и убедись: