I am making a two dimensional eye that follows the player through movement of the pupil using unit as a magnitude for how much the eye should move. I have 20 eyes arranged in a circle all meant to track the player as he moves, but because unit is a Vector3, only two ends of the circle in which the eyes are in line with the z axis face the correct way; the rest are either biased towards the right or left depending on the side. Default represents the default position of the eye unaffected by the player’s movement. How would the eyes have the correct influence in tracking the player?
local u = (script.Parent.eye.Position - v.Character.HumanoidRootPart.Position).unit
eye.Position = Vector3.new(default.X, (default.Y - u.Y * .6), default.Z)
eye.CFrame = eye.CFrame * CFrame.new(0, 0, -u.Z)