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

How do you find what direction your camera is panning?

Asked by 3 years ago
Edited 3 years ago

So I'm making a first person dueling system and for it I want to have 8 possible directions, all 45 degrees differentiated from each other. However to do this I need to find a way to get the direction the cameras panning. I first attempted to find the difference in camera angles using 2 look vectors and comparing the vectors using calculus (code below)

local player = game.Players.LocalPlayer
local mouse = player:GetMouse()

local function getDifference(U, V)
    local dotProduct = (U.X * V.X) + (U.Y * V.Y) + (U.Z * V.Z)
    local angle = math.acos(dotProduct/(U.Magnitude * V.Magnitude))
    return math.deg(angle)
end


local function toDegrees(v)
    local X = math.deg(v.X)
    local Y = math.deg(v.Y)
    local Z = math.deg(v.Z)
    return Vector3.new(X,Y,Z)
end

mouse.Button1Down:Connect(function()
    local U = toDegrees(game.Workspace.CurrentCamera.CFrame.LookVector)
    wait(3)
    local V = toDegrees(game.Workspace.CurrentCamera.CFrame.LookVector)
    print(getDifference(U, V))
end)

The issue is that it only measures the difference between the two points, meaning you can move on different axes, and get the same result.

I later tried the same code altering it slightly to Vector2 instead of Vector3 with the same outcome.

If anyone has any ideas for a way to find the camera panning or has already solved this problem and can offer a soloution it would much appreciated.

Answer this question