Trigger collider moving to a rigidbody and do trigger event?

unity3d Documentation: collision

" If you are moving an object through its Transform component but you want to receive Collision/Trigger messages, you must attach a Rigidbody to the object that is moving."

In my project, I have a “breakable bucket”(collider+kinematic rigid) placed on ground, and I have an “Magic Missile”(trigger collider) moving towards the bucket. According to the above document, even if they collide, there will be no trigger event, because the rigid body is still. So I do the following to the bucket to force a collision check:

bool mbTemp = false;

void Update() {
  if( mbTemp )
      transform.position = transform.position + new Vector3(0,0,0.00001f);
  else    
      transform.position = transform.position - new Vector3(0,0,0.00001f);
  mbTemp = !mbTemp;  
 }

It is quite dirty but it works. I hope there is a better solution.

Simply add a rigidbody (even a kinematic one) to the “Magic Missile”: moving triggers must have a rigidbody for the collision system to work fine.