我需要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。
答案 0 :(得分:1)
首先,我发现脚本的分离是错误的。 第二,如果你把一个gui放在StarterGui中,它只会在你重生之后被看到。
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)
我目前无法测试运行代码,因此可能无法正常运行。
答案 1 :(得分:0)
首先我要做的是在StarterGui中有一个ScreenGui然后在一个Frame下。在框架中,您可以放置一些文本按钮和文本框。我会把脚本放在框架中,所以你需要做的就是在脚本中找到gui
local frame = script.Parent
frame.BackgroundTransparency = 1
然后你继续编写脚本。