Я пытаюсь сделать систему сборки в Roblox. Как мне остановить часть, скользящую к моей мыши? - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу создать систему здания без сетки и Часть, которая показывает, где вы разместите свой новый блок (пусть pblock обозначает место, где вы разместите свой новый блок). Я знаю, почему pblock просто скользит к экрану, потому что он нацелен мышью. Если вы хотите сказать мне сделать новый блок, я сначала делаю pblock . Вот что я сделал до сих пор:

local plr=game.Players.LocalPlayer
local mou=plr:GetMouse()

local tempblock=Instance.new("Part",workspace)
tempblock.Name="TemporaryBuildingBlock"
tempblock.Size=Vector3.new(4,4,4)
tempblock.Transparency=1
tempblock.Anchored=true
tempblock.CanCollide=false

local tempblock_sbox=Instance.new("SelectionBox",tempblock)
tempblock_sbox.Color3=Color3.fromRGB(0,0,0)
tempblock_sbox.Adornee=tempblock_sbox.Parent

while wait()do
    tempblock.CFrame=CFrame.new(Vector3.new(mou.Hit.X,mou.Hit.Y+1.5,mou.Hit.Z))
end

Я действительно думаю, что могу удалить pblock . https://i.stack.imgur.com/BdEXs.gif

Ответы [ 2 ]

0 голосов
/ 13 ноября 2019

Я нашел ответ. Мне просто нужно было установить TargetFilter mou .

mou.TargetFilter=tempblock

Проблема решена.

0 голосов
/ 11 ноября 2019

Прямо сейчас, ваш цикл while никогда не перестанет перемещать деталь на вашу мышь. Вам нужен способ вырваться из этого цикла или точнее переключиться, когда он должен заставить деталь двигаться.

Одним из простых решений может быть прослушивание щелчков мыши. Один клик включает его, еще один выключает.

local shouldMoveTemp = true

-- get the mouse
local plr = game.Players.LocalPlayer
local mou = plr:GetMouse()

-- add a listener for when the left click is pressed down
mou.Button1Down:Connect(function()
    shouldMoveTemp = not shouldMoveTemp
end)

-- make a block to show where to build
local tempblock = Instance.new("Part",game.Workspace)
tempblock.Name = "TemporaryBuildingBlock"
tempblock.Size = Vector3.new(4,4,4)
tempblock.Transparency = 1
tempblock.Anchored = true
tempblock.CanCollide = false

local tempblock_sbox = Instance.new("SelectionBox",tempblock)
tempblock_sbox.Color3 = Color3.fromRGB(0,0,0)
tempblock_sbox.Adornee = tempblock_sbox.Parent

-- make a loop that is always running that monitors for when to move the block
while true do
    if shouldMoveTemp then
        tempblock.CFrame = CFrame.new(Vector3.new(mou.Hit.X,mou.Hit.Y+1.5,mou.Hit.Z))
    end
    wait()
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...