我正在使用 WorldToScreenPoint 和 GetPartsObscuringTarget。我要解决的问题是,玩家必须检测到另一支队伍中的一部分玩家。例如,一个团队中只有一名玩家试图通过检测其类人动物部分来寻找其他玩家。该脚本仅检测工作空间内的部分。
我已经尝试过使用 Player.CharacterAdded:Wait()和嵌套循环来检查玩家是否在同一支球队中。这没有用。在过去的两个星期中,我一直在尝试解决此问题。
local Player = game.Players.LocalPlayer
local Character = workspace:FindFirstChild(Player.Name)
game:GetService("RunService").Heartbeat:Connect(function()
for _, object in pairs(Character:GetDescendants()) do
if object:IsA("Part") or object:IsA("MeshPart") then
if not object:IsDescendantOf(game.Players.LocalPlayer.Character) then
local object2,visible = workspace.CurrentCamera:WorldToScreenPoint(object.Position)
if visible == true then
local pos1 = workspace.CurrentCamera.CFrame.Position
local pos2 = object.Position
local castPoints = {pos1,pos2}
local ignoreList = {game.Players.LocalPlayer.Character, object}
local obstructs = workspace.CurrentCamera:GetPartsObscuringTarget(castPoints,ignoreList)
if obstructs[1] then
return
elseif not obstructs[1] then
print(object.Name.." has been detected!")
end
elseif visible ~= true then
print("You are now incognito.")
return
end
end
end
end
end)