如何在 Roblox Lua 中将一个零件生成在当前鼠标位置?

我一直在为 Roblox 写脚本。以下是代码:

local UIS = game:GetService("UserInputService")
local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local Activation =
Instance.new("Sound",game.Players.LocalPlayer.Character.Head)
local char = Player.Character
local hum = char.Humanoid
local root = char.HumanoidRootPart

UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.F then
    Activation.SoundId = "rbxassetid://1581091676" -- 播放万花筒写轮眼解放的音效。
    Activation:Play()
    wait(0.3)
    game.Players.LocalPlayer.Character.Head.face.Texture = "rbxassetid://76285632" -- 当按下 F 键时,脸部纹理会变为写轮眼贴花。
    game:GetService("Chat"):Chat(Player.Character.Head, "万花筒写轮眼!")
end
end)

UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.R then
    Activation.SoundId = "rbxassetid://1580990602" -- 播放天照之炎解放的音效。
    Activation:Play()
    game:GetService("Chat"):Chat(Player.Character.Head, "天照之炎!")
    local Target = Instance.new("Part") -- 创建一个零件
    Target.Parent = game.Workspace
    Target.Position = Vector3.new(Mouse.target.Position) -- 在鼠标位置生成零件
    Target.Transparency = 1
    Target.Anchored = true
    Target.CanCollide = false

    local Amaterasu = Instance.new("Fire")
    Amaterasu.Parent = game.Workspace.Part
    Amaterasu.Color = Color3.new(0,0,0)
    Amaterasu.SecondaryColor = Color3.new(0,0,0) -- 天照之炎的属性
    Amaterasu.Size = 25

    local R = Instance.new("RocketPropulsion") -- 火箭动力,挂在天照之炎的父级
    R.Parent = Amaterasu
    R.MaxThrust = 300
    R.ThrustP = 30
    R:Fire()
end
end)

UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.G then
    game.Players.LocalPlayer.Character.Head.face.Texture = "rbxassetid://22557247" -- 当按下 G 键时,脸部纹理会变回正常。(现在为空白,不起作用 :/)
end
end)
-----------------------------

我需要帮助生成一个父级是天照之炎的零件,它会在我的鼠标游戏位置生成。我已经研究并尝试了Target.Position = Vector3.new(Mouse.target.Position)Target.Position = Vector3.new(Mouse.Hit)的代码。

无论我在游戏中的鼠标位置是什么,它们都不起作用,最终结果是零件生成在基板的中心位置。

点赞
用户9599769
用户9599769

下面是一张票:

local Part = Instance.new("Part",game.Workspace);
Part.CFrame = Mouse.Hit;
2018-04-05 02:09:56
用户11588547
用户11588547

我们需要一个 CFrame。所以我们会做:

Target.CFrame = CFrame.new(Mouse.target.Position)
2019-06-02 02:24:57
用户20154794
用户20154794
`Target.CFrame = CFrame.new(Mouse.target.Position)`

这应该可以工作
2022-10-04 15:03:35