为什么我使用 Roblox Lua Players.LocalPlayer.Mouse:Getmouse() 会出错?

Why is there an error when I use Roblox Lua Players.LocalPlayer.Mouse:Getmouse()?

我正在尝试制作一款游戏,但它严重依赖鼠标,但发生错误,提示“尝试使用 'GetMouse' 索引 nil”,无论我做什么,它都会产生此错误。也许我的游戏没有更新(我认为它已更新)。我之前问过类似的问题,但现在我确定是 Roblox Studio 的错。

代码如下:


local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local Block = game.ServerStorage.Experimental

function place()
    PlacedBlock = Block:Clone()
    PlacedBlock.Parent = workspace
    PlacedBlock.Position = Mouse.Hit.p
end

Mouse.MouseButton1Click:Connect(place)

第一个问题是 MouseButton1Click 不是 GetMouse() 的有效成员。 MouseButton1Click 用于 GUI 对象等内容。 Button1Down 用于 GetMouse()。此外,.p 已弃用,请改用 .Position

其次,您需要将您的部分放在 ReplicatedStorage,而不是 ServerStorage。客户端无法访问 ServerStorage。确保您使用的是 LocalScript.

固定:

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local Block = game.ReplicatedStorage.Experimental

function place()
    PlacedBlock = Block:Clone()
    PlacedBlock.Parent = workspace
    PlacedBlock.Position = mouse.Hit.Position
end

mouse.Button1Down:Connect(place)

现在有一个问题。当您放置零件时,它只会显示给您,不会显示给其他任何人。要解决此问题,您需要使用 Remote Events.