2013-12-15 56 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 

然後你繼續用腳本。