Roblox Lua 不识别 boolvalue 为 true

我希望当值为 "Open" 的时候它可以显示一个 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" 的 SG 上显示在屏幕上。同样也没有错误信息。

点赞
用户11500820
用户11500820
当 script.Parent.Parent.Open.Value 为 true 时,我只需将 Visible 后面的 .Value 移除.

while script.Parent.Parent.Open.Value == true do
    print("moose")
    script.Parent.Visible = true
    script.Parent.Parent.Text2.Visible = true
    break
end
2019-06-15 19:21:23
用户9922866
用户9922866

首先了解 script 的祖先是什么样的对象,使用变量引用这些对象是一个很好的开始。此外,名为 'EndlessPit' 的 ScreenGui 是一直可见还是只在某些时间点可见?

就你的 while 循环而言,你的问题可能来自于立即退出循环而不是检查某些条件。我不知道整个故事,因为你只提供了一小部分代码,因此更大的图片和解释你究竟想要实现什么会很有帮助。

最后,不需要检查 true == true,因为 OpenBoolValue;这类布尔等式检查是不必要的。在宏观层面上,它们微不足道,但是去除它们会稍微优化你的代码。

2019-06-16 04:27:17
用户2860267
用户2860267

由于您已经在使用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时打开和关闭元素。

2019-06-16 05:41:31