我阅读了Roblox开发者中心关于如何使ProximityPrompt工作的内容,我可以让它做某些事情,但我希望能够在游戏gui商店中打开一个。我找不到如何调用Frame使其可见,也找不到怎样让Frame查找正确的触发器。
以下是我添加到Frame localScript 的内容
local prompt = game:GetService("ProximityPromptService")
local button = game.Workspace.MinerStore.ProximityPrompt.Triggered:WaitForChild()
local function prompt(PromptObject, player)
frame.Visible = not frame.Visible
这就是我的提示脚本显示的内容。
local frame = game.StarterGui.Miners:WaitForChild("Frame")
game.Workspace.MinerStore.ProximityPrompt.Triggered:Connect(function(player)
--game.StarterGui.Miners.Frame:Connect(function(player)
-- frame.Visible = not frame.Visible
--end)
end)
我从开发者中心获得了所有这些权利,并试图让它成为我自己的权利,但由于我不理解的原因,两者没有联系。
您注释掉的代码表明您犯了一个常见的错误。放置在StarterGui中的UI充当模板。当每个玩家的角色出生时,它会复制到他们的PlayerGui中。您似乎在试图修改UI模板,而不是特定玩家看到的实际UI。
由于可以在LocalScript中观察到ProximityPrompt,因此可以直接在UI LocalScript中侦听触发器。
local prompt = game.Workspace.MinerStore.ProximityPrompt
local frame = script.Parent
prompt.Triggered:Connect(function()
frame.Visible = true
end)