i am a newbie at scripting but i know how to script.I am making a Tycoon Building game I have a problem where i want to make the model follow my mouse cursor once i clicked the GUI button, and i want it continuously follow the cursor once i click it
01 | local player = game.Players.LocalPlayer |
02 | local mouse = player:GetMouse() |
03 | local function round (n) |
04 | return math.floor(n + 0.5 ) |
05 | end |
06 |
07 | if game.StarterGui.ScreenGui.BuildModeFrame.BuildSelections.IronWall |
08 | then |
09 | game:GetService( "UserInputService" ).InputChanged:Connect( function (input, gameProcessed) |
10 | game.Workspace.walls.ironwall:SetPrimaryPartCFrame(CFrame.new(round(mouse.Hit.Position.X),round(mouse.Hit.Position.Y),round(mouse.Hit.Position.Z)) + Vector 3. new( 0 , 5 , 0 )) |
11 | end ) |
12 | end |
some parts of this code isn't necessarily needed to be there. Please help and also if you can make this script more shorter that would help a lot , thank you in advance
I haven't looked into this myself, but with Miners Haven opensource, I'm sure it's there somewhere. Also worth checking out: https://scriptinghelpers.org/blog/creating-a-furniture-placement-system
For the actual question though, the way I always handle these things is I have a function that I BindToRenderStep with RunService.
In the function, I'll have everything that needs to run every frame such as:
1 | if isPlacingObject then |
2 | setObjectPosition() |
3 | end |
Then when the gui is clicked, I set isPlacingObject to true, and clone the object and the RunService function will automatically set it for you