# Adding force to a 3d object in a 2d scene

I have a 3d game object placed in a 2d scene (top-down view) in Unity. I want to add force to the object to move it in the direction it's facing. I attached a RigidBody2D component to it and when I use the AddForce() method, it's not working as I want it to i.e. it's moving on only one plane x or y but not in the facing direction. Please help me. Edit :- The game is my version of Asteroids. The ship is 3d and the asteroids are 2d. The scene is in 2d. I fixed the 'y' and 'z' rotation of the ship. Now how do I add force to the ship in the direction its facing ? The Update method -

void Update() {

    float rotationInput = Input.GetAxis ("Rotate");
if (rotationInput != 0) {
float rotationAmount = RotateDegreesPerSecond * Time.deltaTime;
if (rotationInput < 0) {
rotationAmount *= -1;
}
ship.transform.Rotate (Vector3.down, rotationAmount);
}
Vector3 currentRotation = ship.transform.eulerAngles;
thrustDirection = new Vector3 (Mathf.Sin(currentRotation.x) * -1, Mathf.Cos(currentRotation.x), Mathf.Cos(currentRotation.x));


}

The FixedUpdate method -

void FixedUpdate() {

    if (Input.GetAxis ("Thrust") > 0) {
print (thrustDirection);
ship.AddRelativeForce (ThrustForce * thrustDirection, ForceMode.Force);
}

}


• Unity is deprecating unityscript, did you mean to tag your question with c#? – Alexandre Vaillancourt Oct 2 '18 at 14:08
• Have you considered just rearranging your scene to work in the xy plane instead, if your physics are meant to be 2D? – DMGregory Oct 2 '18 at 14:23
• How do I do that? – Richard David Oct 2 '18 at 17:27
• Rotate anything that's on the xz plane 90 degrees, so it's in the xy plane instead? If you want more specific advice, edit your question to show us the specific situation you're dealing with. – DMGregory Oct 2 '18 at 17:48
• I've edited my question, please help me – Richard David Oct 4 '18 at 17:22