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)
我正在尝试通过 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)