Push and move rigid object

Hello.
I’m newbie. Just for 1 month.

I want to push a “Crate” on the terrain and i want move to it somewhere. “Crate” object has Box collider and, Rigidbody. Also my FPS controller has capsule collider.
So, i tried many adjust alternative and i wasn’t able to resolve a problem.

Problem is; When my FPS Controller hits the “Crate” nothing do. But after this when i get back, the “crate” moving on my first touch direction well. But this movement must occur when i hit it. Not leave it’s surface.
So i noticed that, if i hit “crate” and hit again before it stop completely, i’m able to push it what i want.

What is my mistake? Any idea?
Sorry for my bad English.

Many Thanks
Babur

With a CharacterController you must use OnControllerColliderHit(). The sample script on that page implements pushing of rigidbodies by a character controller.

Use function OnCollisionEnter() to make the crate a child object of your player upon collision and unparent it when you press the ‘release’ button. This will make the crate follow the transform of your player in all directions until unparented. Otherwise you could try using Rigidbody.AddForce() in the collision function.