0

我需要有关 Roblox 中“ScreenGui”对象的帮助。我正在尝试编写代码,当玩家通过 gui 点击一个块时弹出 gui 将不会显示。调用该函数以弹出 gui 的脚本位于工作区下,创建 gui 的脚本位于 startergui 文件夹中。

这是调用另一个脚本的脚本:

script.Parent.ClickDetector.MouseClick:connect(shared["ShowGui"]);

要调用的脚本是:

shared["ShowGui"] = function()
    print("Hello World");
    sg = Instance.new("ScreenGui", game.StarterGui);
    fr = Instance.new("Frame", sg);
    fr.Size = UDim2.new(0,200,0,60);
    fr.Position = UDim2.new(0, 0, 0.5, -60);
    fr.Visible = true;
    fr.Active = true;
    fr.BackgroundColor3 = Color3.new(1, 0, 0);
end 

当我单击该块时,正在调用该函数,控制台正在输出“Hello World”,所以我知道它正在被调用。

我还测试了代码,但它不是一个函数,并且 gui 会按应有的方式显示出来。

所以现在我只是想弄清楚为什么当脚本被作为函数调用时它不会创建 gui。

4

2 回答 2

1

首先,我发现脚本的分离是合乎逻辑的。其次,如果你在 StarterGui 中放置一个 gui,它只会在你重生后才能看到。

StarterGui 中的所有 gui 对象在玩家重生后都将归属于玩家的 PlayerGui。

尝试将此脚本放在砖块中:

script.Parent.ClickDetector.MouseClick:connect(function(PlayerThatClicked)
    Screen = Instance.new("ScreenGui", PlayerThatClicked.PlayerGui)
    Frame = Instance.new("Frame", Screen )
    Frame.Size = UDim2.new(0,200,0,60)
    Frame.Position = UDim2.new(0, 0, 0.5, -60)
end)

我目前无法测试运行代码,因此它可能无法按预期工作。

于 2013-12-17T15:10:49.513 回答
0

首先我要做的是在 StarterGui 中有一个 ScreenGui 然后在那个 Frame 下。在框架中,您可以放置​​一些文本按钮和文本框。我会把脚本放在框架中,所以你需要做的就是在脚本中找到 gui

local frame = script.Parent
frame.BackgroundTransparency = 1

然后你继续写剧本。

于 2017-03-04T13:12:03.727 回答