尝试用 'WaitForChild' 索引 nil

attempt to index nil with 'WaitForChild'

我目前正在制作一个脚本,这样当一个方块被触摸时,玩家就会到位。是

game.Workspace.AUPortal.Glitch4.Position

我需要帮助解决这个错误。

Workspace.A12.MovePlayer:4: attempt to index nil with 'WaitForChild'

脚本:

function onTouched(hit)
    local h = hit.Parent:findFirstChild("Humanoid")
    local playerMod = require(game:GetService("Players").LocalPlayer:WaitForChild("PlayerModule"))
    local controls = playerMod:GetControls()
    if h~=nil then
        controls:Disable()
        pos = game.Workspace.AUPortal.Glitch4.Position 
        h:MoveTo(pos)
        wait()
    end
end

script.Parent.Touched:connect(onTouched)

我只能假设您正在尝试访问标准 Script 中的 LocalPlayer,这是您无法做到的。

您只能在 LocalScript 中访问 LocalPlayer,因此您收到 WaitForChild 错误的原因。因为 LocalPlayer 不存在(它是 nil)。

通过 Touched 事件,您实际上可以获得对您尝试使用的播放器的引用:

Part.Touched:Connect(function(HitPart)
 local Humanoid = HitPart.Parent:FindFirstChild('Humanoid');
 if (Humanoid) then
  local Player = game.Players:GetPlayerFromCharacter(HitPart.Parent);
  -- You can then use this player reference.
 end
end)