Roblox 错误:尝试对本地变量 'screengui'(空值)进行索引

Workspace.Part.Script:16: attempt to index local 'screengui' (a nil value)

wait(2) -- 测试以确保资源加载完毕

script.Parent.Touched:connect(function(hit)
    if not hit or not hit.Parent then return end
    local human = hit.Parent:findFirstChild("Humanoid")
    if human and human:IsA("Humanoid") then
        local person = game.Players:GetPlayerFromCharacter(human.parent)
        if not person then return end
        person.Checklist.FirstEggCollected.Value = true
        local playgui = person:FindFirstChild('PlayerGui')
        print(playgui)
        wait(0.2)
        local screengui = playgui:FindFirstChild('ScreenGui')
        wait(0.2)
        print(screengui) -- 这将打印 null
        local collectnotice = screengui:FindFirstChild('CollectionNotice') -- 这是第 16 行
        local Toggle = collectnotice.Toggle
        local text = Toggle.Text
        local value = text.Value
        value = "The Easy Egg!"
        person:WaitForChild('PlayerGui'):FindFirstChild('ScreenGui'):FindFirstChild('CollectionNotice').Toggle.Color.Value = Color3.fromRGB(0,255,0)
        person:WaitForChild('PlayerGui'):FindFirstChild('ScreenGui'):FindFirstChild('CollectionNotice').Toggle.Value = true
        script.Parent:Destroy()
        wait(5)
        game.Workspace.Variables.IfFirstEggInGame.Value = false
    end
end)

我一直在弄这个,几个小时了。不知道该怎么解决错误。FE 开启了,是的,它的名称是 “ScreenGui”,并且它在 “PlayerGui” 中

错误:Workspace.Part.Script:16: attempt to index local 'screengui' (a nil value)

点赞
用户2858170
用户2858170

从Roblox手册:http://wiki.roblox.com/index.php?title=API:Class/Instance/FindFirstChild

描述:返回具有给定名称的第一个找到的子对象,如果不存在,则返回nil。

因此似乎没有名为“ScreenGui”的子对象。

如果函数可能返回nil,则必须正确处理。盲目地索引可能为nil值是不好的做法。

2018-03-11 11:08:34
用户19395693
用户19395693

你的问题出在这一行 local collectnotice = screengui:FindFirstChild('CollectionNotice')

screengui 变量中没有列出实例。

2022-06-23 02:55:10