workspace.Tool.Handle.Script6:无效参数#3(应为 Vector3,已获得实例)

workspace.Tool.Handle.Script6: invalid argument#3(Vector3 Expected, Got Instance)

我正在尝试通过 remoteEvents 使零件在全局范围内跟随鼠标的位置。但是我得到了这个错误

workspace.Tool.Handle.Script6:无效参数#3(应为 Vector3,已获得实例)

有什么问题吗?

本地脚本:

local tool = script.Parent.Parent
local rEvent = script.Parent.MoveToMousePos

tool.Equipped:Connect(function(mouse)
    mouse.Move:Connect(function()
    rEvent:FireServer(mouse.Hit.p)
end)
end)

脚本:

local tool = script.Parent.Parent
local rEvent = script.Parent.MoveToMousePos
local part = workspace.Test


rEvent.OnServerEvent:Connect(function(mousePos)
   part.Position = mousePos
end)

错误消息告诉您对 part.Position 的赋值失败,因为提供的值不是 Vector3,而是 Instance。所以看mousePos这个变量是怎么赋值的,就是问题的线索。

每当客户端触发发送消息的 RemoteEvent, the OnServerEvent supplies the Player 实例,然后是所有参数。所以目前,鼠标位置 被发送到服务器脚本,但它在函数签名中被忽略,并且 mousePos 变量被分配为播放器称为 RemoteEvent.FireServer().

要修复您的代码,只需添加一个变量来说明调用 RemoteEvent 的玩家。

rEvent.OnServerEvent:Connect(function(player, mousePos)
    part.Position = mousePos
end)