尝试使用'WaitForChild'索引空值

我正在制作一个脚本,当方块被触碰时,玩家将移动到某个位置。

此位置是:

game.Workspace.AUPortal.Glitch4.Position

但我需要在这个错误中得到帮助:

Workspace.A12.MovePlayer:4: 尝试使用'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)

原文链接 https://stackoverflow.com/questions/71234349

点赞
stackoverflow用户18287276
stackoverflow用户18287276

我只能假设你正在尝试在标准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);
  --你可以使用这个玩家的引用。
 end
end)
2022-02-23 09:40:40