I got you man im working on it right as we speak
Yeah Is basically hard, you want your camera move just like in avatar editor? where you can inspect your items?
He want his camera to be draggable, why are you mentioning viewport?
Making camera draggable is different thing than a viewport frame.
Have you ever played Township or one of those tycoon games on the App Store? The camera movement system like that is what I’m looking for but @dexanddeb says he understands what I’m talking about so I should be ok.
Ohh, understandable.
I can try making it, I am not so familiar with this kind of stuff, but I’ll try.
Do you need to hold left mouse button to move your camera?
Left or right and having it work on mobile would be great too.
Make a part in Workspace named “CamPlace” and then set orientation to “-90, 0, 0”
Uploading: image.png…
then insert a local script in starterplayer scripts doesn’t matter what you name it
and insert this into the local script:
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local plr= game.Players.LocalPlayer
local char = game.Workspace:WaitForChild(plr.Name)
local Camera = game.Workspace.CurrentCamera
Camera.CameraType = "Scriptable"
Camera.CFrame = CFrame.new(0,0,0)
Camera.CFrame = game.Workspace.CamPlace.CFrame
local W,A,S,D,NotMoving = false,false,false,false,true
local function KeepMoving()
repeat
if W then
Camera.CFrame = Camera.CFrame + (Camera.CFrame.UpVector * 0.4)
end
if S then
Camera.CFrame = Camera.CFrame + (Camera.CFrame.UpVector * -0.4)
end
if A then
Camera.CFrame = Camera.CFrame + (Camera.CFrame.RightVector * -0.4)
end
if D then
Camera.CFrame = Camera.CFrame + (Camera.CFrame.RightVector * 0.4)
end
RunService.RenderStepped:Wait()
until NotMoving
end
local function MoveBegan(actionName,inputState,input)
if input.UserInputType == Enum.UserInputType.Keyboard then
if UserInputService:IsKeyDown(Enum.KeyCode.W) then
W = true
NotMoving= false
end
if UserInputService:IsKeyDown(Enum.KeyCode.A) then
A = true
NotMoving= false
end
if UserInputService:IsKeyDown(Enum.KeyCode.S) then
S = true
NotMoving= false
end
if UserInputService:IsKeyDown(Enum.KeyCode.D) then
D = true
NotMoving= false
end
end
if W and not A and not S and not D then
KeepMoving()
elseif not W and not A and not S and D then
KeepMoving()
elseif not W and not A and not S and D then
KeepMoving()
elseif not W and not A and not S and D then
KeepMoving()
end
end
local function MoveEnded(input, gpe)
if input.KeyCode == Enum.KeyCode.W then
W = false
elseif input.KeyCode == Enum.KeyCode.S then
S = false
elseif input.KeyCode == Enum.KeyCode.D then
D = false
elseif input.KeyCode == Enum.KeyCode.A then
A = false
end
end
if not W and not S and not D and not A then
NotMoving = true
else
NotMoving = false
end
game:GetService("ContextActionService"):BindAction("MoveCam" , MoveBegan, false,Enum.KeyCode.W, Enum.KeyCode.A, Enum.KeyCode.S, Enum.KeyCode.D)
UserInputService.InputEnded:Connect(MoveEnded)
wait(10)
print("Script Is Functional")
You can edit this to move using the mouse
oh, if that’s the case, lock the camera, and you can use game.Workspace.currentcamera, something like this, lock the Y to a Y coord, then, you can use user input mouse to detect when mouse is held down, then do math behind the initial press, and the let go, to then move the X and Y coords.
I actually currently have a WASD camera move script and I’m trying to switch from that to using the mouse for a faster/smoother experience and compatibility. I did try to change it but it didn’t even get close to working thus why I created this topic.
Dont worry im still working on one that doesnt require a part and supports dragging with mouse
Thank you so much you’re a live saver!
Then why didn’t you specifiy that?
Hey so while looking around, I found this dev post which seems to have the solution you are looking for.
I have a video which shows how it should look:
I didn’t realise you were looking for a WASD script. Because at the time it wasn’t relevant.
Dang beat me too it, good work!
The post looks like what I want but in your video you just hold the mouse down and the camera moves by itself.
You have to drag to make it move.
yay in that case im still working on mine