Add Force without Rotation

I've been playing around with the add force physics in Unity for a few hours now but have been stuck at this point for a long time -

I'm trying to add a force to an object, similar to thrust, that pushes the object from behind. I started by adding a force to a sphere, then using the smooth follow script to make the object follow it, this didn't work. It seems that adding force to a cube object comes out with some weird results for me.

How is it possible to make a object move forward, using add force, without it going 'Weird' and shaking all over the place?

I'm using a simple rigid body on the object, then using the line :

rigidbody.AddForce(transform.forward * 20); 

Yet my results are really quite weird. It seems to be that the spheres are fine with this, however cubes act it a strange way.

I decided to create an empty game object, added the script to it, then parented it with the other object making sure the empty game object was behind when parented, this still gave me some weird results.

Where am I going wrong here? What is it that I'm messing up on?

Thanks in advance,

~ Alex

unckeck the gravity box it will work fine because of gravity you have checked it is going like this

That sounds like a friction problem. If you try to push your cubboard across your carpet I'm quite sure it will tilt because it get stuck on the ground. You have two things you can try:

  1. Setup your PhysicMaterial of your box and the ground and set some low friction values to "grease" the movement.
  2. Use Rigidbody.AddForceAtPosition to lower the attack point where you apply your force.

The physics are designed to simulate the real world, so you need real world solutions ;)

ps. PhysicMaterial-component information