When i throw it closer to the player it immediately starts going up, but when i try to throw it farther away the grenade seems to work for a couple of seconds but then starts going up. This is my code:
if (Input.IsActionJustPressed("G"))
{
var grenadeScene = ResourceLoader.Load<PackedScene>("res://Scenes/grenade.tscn");
var grenadeInstance = grenadeScene.Instantiate<RigidBody3D>();
GetNode<Node3D>("/root/World").AddChild(grenadeInstance);
var forward = -camera.GlobalTransform.Basis.Z;
grenadeInstance.GlobalTransform = camera.GlobalTransform.Translated(forward * 2);
grenadeInstance.LinearVelocity = new Vector3(forward.X * 20, forward.Y * 10, forward.Z * 20);
}
The grenade is a RigidBody3D.