Roblox Lua在boolvalue = true时无法识别

时间:2019-06-15 19:16:43

标签: lua roblox

我希望当值等于“ 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”的screengui中,在屏幕上可见。也没有错误消息。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

首先,了解script的祖先是什么样,即,其父对象是什么样的对象,依此类推。使用变量来引用那些对象将是一个好的开始。另外,这个ScreenGui叫做“ EndlessPit”是要始终可见还是仅在某些时候可见?

就您的while循环而言,您的问题可能出在您立即脱离循环而不是检查某些条件的事实吗?我不了解这里的全部内容,因为您只提供了一段代码,所以对您要尝试实现的目标进行更全面的了解和解释会很有帮助。

最后,由于true == trueOpen,因此无需检查BoolValue是否有效;那种用bool进行的相等性检查是不必要的。在宏伟的方案中,它们很小,但是删除它们会稍微优化您的代码。

答案 2 :(得分:0)

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