2013-12-15 32 views
0

我需要Roblox中的“ScreenGui”对象的帮助。我试图编写代码,当玩家通过GUI点击一个块时,gui不会弹出。调用函数来使gui弹出的脚本在工作区下,创建gui的脚本位于startergui文件夹中。与Roblox中的块和ScreenGui进行交互的问题

这是调用另外一个脚本:

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。

回答

1

首先我找到了分开的脚本ilogical。 第二,如果你把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) 

我目前无法测试运行的代码,所以我想到它可能无法正常工作。

0

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

local frame = script.Parent 
frame.BackgroundTransparency = 1 

然后你继续用脚本。