Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

Detect Part Leaving Region3?

Asked by
Asentis 17
5 years ago

Today I attempted to create a simple placement script where the player can place stuff (not added yet) but ran into some troubles. I was going to use the Touched event but created some issues so instead I'm using Region3. The selected part is being validated can "CanMove" is being set to true if it's inside the Region3 but adding an else statement doesn't seem to do anything. I even tried printing something and nothing happened.

A concept or an explaination is all I need. Thanks.

Below is my full script which I am using.


repeat wait() until game.Players.LocalPlayer ~= nil repeat wait() until game.Players.LocalPlayer.Character ~= nil repeat wait() until game:IsLoaded() local Player = game.Players.LocalPlayer local Character = Player.Character local PlayerGui = Player:WaitForChild("PlayerGui") local Mouse = Player:GetMouse() Selected = nil CanMove = false local Barrier = game.Workspace.Barrier local BarrierRegion = Region3.new(Vector3.new(0,0,0), Barrier.Size) Barrier.CFrame = BarrierRegion.CFrame wait(2) Selected = workspace.bRICK -- Oops, caps. CanMove = true function move() if CanMove == true and Character.Humanoid.Health > 0 and Character ~= nil and Player ~= nil and Selected ~= nil then Selected.Position = Vector3.new(math.floor(Mouse.Hit.p.X), 0, math.floor(Mouse.Hit.p.Z)) end end function color() if CanMove == true and Selected ~= nil then Selected.Color = Color3.fromRGB(255, 89, 89) elseif CanMove ~= true then Selected.Color = Color3.fromRGB(25,25,25) end end while wait() do color() local parts = workspace:FindPartsInRegion3WithWhiteList(BarrierRegion, {Selected}, 1000) for i,v in pairs(parts) do if v == Selected then CanMove = true else CanMove = false print("Testing") -- Testing nor disabled CanMove works. end end if Selected ~= nil and Mouse.Target ~= nil and Mouse ~= nil and CanMove == true then move() end end

Answer this question