Как я могу загрузить свое рабочее пространство из начального меню GUI в ROBLOX? - PullRequest
1 голос
/ 14 июля 2020

Я делаю игру ROBLOX, и у меня проблема GUI:

  • У меня есть кнопка «Начать игру», но она есть в заявлении elif туда, где он просто переключается с «Начать игру» на «Загрузка игры ...» туда и обратно, когда вы нажимаете на нее. Как я могу изменить его так, чтобы вместо сообщения «Игра загружается ...», когда вы щелкаете по нему, он переходит в саму игру (мое рабочее пространство)?

Я даже не хочу «Игра» Загрузка ... ", я поместил его туда только тогда, когда изучал все тонкости кнопок. 1017 * должно быть go, и вы загрузитесь в настоящую игру.

Вот что у меня есть для скрипта для кнопки:

local button = script.Parent
local toggled = false

local function onButtonActivated()
    if toggled == false then
        button.Text = "Game Loading..."
        toggled = true
    else
        button.Text = "Start Game"
        toggled = false
    end
end

button.Activated:Connect(onButtonActivated)

Примечание: I ' m, используя Lua (язык по умолчанию ROBLOX) через IntelliJ и просто скопировав мой готовый код в сценарии, поскольку в IntelliJ текстовый редактор намного лучше, чем в ROBLOX по умолчанию.

Ответы [ 2 ]

0 голосов
/ 07 августа 2020
local button = script.Parent
local guiObj = --a reference to the main screengui which the button is a descendant of

local function onButtonClicked()
    guiObj:Destroy()
end

button.MouseButton1Click:Connect(onButtonClicked)

Вы можете сделать несколько причудливых затуханий и тому подобное, если хотите.

0 голосов
/ 15 июля 2020

Если это место является просто центром с меню «Пуск», а игра фактическая находится в другом месте вселенной, тогда вам нужно будет использовать TeleportService:Teleport(), чтобы переместить LocalPlayer в эту игру. После завершения телепорта игрок сможет без проблем играть в эту игру. Вот пример использования вашего образца кода:

local button = script.Parent
local toggled = false
local destination = 0 -- Change 0 to the place ID you want the user to be teleported to
local TeleportService = game:GetService("TeleportService")

local function onButtonActivated()
    if toggled == false then
        button.Text = "Game Loading..."
        --toggled = true
        TeleportService:Teleport(destination)
    else
        button.Text = "Start Game"
        toggled = false
    end
end

button.Activated:Connect(onButtonActivated)

Однако, если вы загружаете это GUI внутри фактической игры, все, что вам нужно сделать, это :Destroy() объект GUI. Это навсегда переместит объект GUI и всех его дочерних объектов под nil и отключит все соединения.

В игре это будет означать, что GUI просто исчезнет, ​​и игрок будет может продолжить игру. Если у вас нет другого критического кода, работающего внутри GUI, это должно быть решение go, если вы работаете только с одним местом.

local button = script.Parent
local toggled = false
local guiObj = nil -- Replace nil with a reference to the "ScreenGui/BillboardGUI" object that houses the 'button'.

local function onButtonActivated()
    if toggled == false then
        --[[button.Text = "Game Loading..."
        toggled = true]]--
        guiObj:Destroy()
    else
        button.Text = "Start Game"
        toggled = false
    end
end

button.Activated:Connect(onButtonActivated)
...