I'm trying to make a fly script, but the BodyGyro isn't working. Here's my script.

local player = game.Players.LocalPlayer
repeat wait() until player.Character
local character = player.Character
local Flying = true
local BodyVelocity = Instance.new('BodyVelocity',character.Torso)
local BodyGyro = Instance.new('BodyGyro',character.Torso)
repeat wait()
BodyVelocity.Velocity = workspace.CurrentCamera.CoordinateFrame.lookVector * Vector3.new(0,1,0)
BodyGyro.cframe = CFrame.new(character.Torso.Position,workspace.CurrentCamera.CoordinateFrame.lookVector)
until Flying == false