【问题标题】:StarterGui elements still appearing when set to invisibleStarterGui 元素在设置为不可见时仍然出现
【发布时间】:2021-08-17 01:42:05
【问题描述】:

我正在尝试使用 PlayerAdded 使屏幕 gui 消失并出现另一个。它使两个 guis 都出现了。我还试图让玩家在加入游戏时不生成,这也不起作用。

game.Player.CharacterAutoLoads = false

local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
    game.StarterGui.StartScreenFrame.Visible = true
    game.StarterGui.PlayGui.Visible = false
end)

【问题讨论】:

  • 请注意,PlayFrame 和 StartScreenFrame 看起来是包含 ScreenGuis 的 Frames。这是倒退。 ScreenGuis 应该是包含所有其他 UI 元素的根。
  • 嘿,感谢您的帮助,我现在一切正常。我只是通过将每个人都放在一个盒子里来采取快速路线,现在一切正常。如果你有空,我还有一个问题。

标签: lua roblox


【解决方案1】:

看看documentation for StarterGui

Players 的角色重生时,其PlayerGui 的内容被清空。然后将 StarterGui 的子代(连同它们的后代)复制到 玩家界面。

StarterGui 中的东西充当模板。显示在玩家屏幕上的实际标签可以在玩家的 PlayerGui 中找到。您的代码正在修改模板,而不是克隆到 PlayerGui 的元素。

通常,要解决您的问题,您只需要指向 UI 元素的正确路径即可。但是你有一个复杂的因素,你已经指定了game.Players.CharacterAutoLoads = false。这意味着在玩家角色生成之前,StarterGui 中的内容不会被克隆到 PlayerGui 中。

所以我会推荐一些东西:

  • 将您的 UI 元素移动到 ReplicatedStorage 中,这将在您最终告诉您的角色生成到世界时防止 UI 元素重复。
  • 手动将元素克隆到每个玩家的 UI 中。这将使 UI 元素显示出来。
  • 配置克隆的元素。这样您就可以自己编写 UI 行为脚本。

然后像这样更新你的脚本:

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- get a reference to the UI templates
local startScreen = ReplicatedStorage.StartScreenFrame
local playScreen = ReplicatedStorage.PlayGui

-- disable character's auto loading
Players.CharacterAutoLoads = false

-- listen for when players first join the game
Players.PlayerAdded:Connect(function(player)
    -- add the UI Elements to the PlayerGui
    local startGui = startScreen:Clone()
    startGui.Visible = true
    startGui.Parent = player.PlayerGui

    local playGui = playScreen:Clone()
    playGui.Visible = false -- enable this later
    playGui.Parent = player.PlayerGui
end)

请注意,由于您手动将 UI 元素放入 PlayerGui,因此您应该小心,当玩家死亡并重生时,他们的 PlayerGui 将被清除。您可以通过将每个 ScreenGui 上的 ResetOnSpawn 属性设置为 false 来避免这种情况。

【讨论】:

  • 你能澄清一下我应该把这个脚本放在哪里吗?
  • Scripts 在 Workspace 或 ServerScriptService 中的任何位置工作。
  • 这很奇怪,我加入游戏时似乎从serverscriptservice中删除了脚本。你想让我给你发一张我拥有所有东西的屏幕截图吗?
  • 您是否安装了其他脚本或插件?
  • 我有你安装它时给你的东西
猜你喜欢
  • 2021-11-13
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多