Roblox Lua 无法识别何时 boolvalue = true

Roblox Lua not recognizing when boolvalue = true

我希望它在 "Open" 的值等于 true 时显示一个 gui。

我什至用等于 true 的值开始游戏,但没有用。也没有错误。

while script.Parent.Parent.Open.Value == true do
    script.Parent.Visible.Value = true
    script .Parent.Parent.Text2.Visible.Value = true
    break
end

我希望两个文本框("Text1" 和 "Text2" 显示在名为 "EndlessPit" 的屏幕图形用户界面中,以便在屏幕上可见。也没有错误消息。

我只需要删除 Visible 后面的 .Value

while script.Parent.Parent.Open.Value == true do
    print("moose")
    script.Parent.Visible = true
    script .Parent.Parent.Text2.Visible = true
    break
end

首先,了解script的祖先长什么样,即它的父对象是什么对象,等等会很有帮助。使用变量来引用这些对象将是一个好的开始。另外,这个叫做 'EndlessPit' 的 ScreenGui 是一直可见,还是只在某些时候可见?

就您的 while-loop 而言,您的问题可能是因为您立即跳出循环,而不是检查某些条件吗?我不知道这里的全部故事,因为你只提供了一小段代码,所以更全面的描述和解释你到底想要实现什么会很有帮助。

最后,不需要检查 true == true 因为 OpenBoolValue;那些与 bools 的平等检查是不必要的。在宏伟的计划中,它们很小,但删除它们会稍微优化您的代码。

由于您已经在使用 BoolValues,您可以简单地让 LocalScript 观察值的变化。你可以这样做:

local openVal = script.Parent.Parent.Open
local parentGui = script.Parent
local text2 = script.Parent.Parent.Text2

openVal.Changed:Connect(function(value)
    parentGui.Visible = value
    text2.Visible = value
end)

这将使其在 BoolValue 从 true 变为 false 或再次变为 true 时打开和关闭元素。