BroadcastMessage, SendMessage の仕様なんですが、

if (Input.GetKey("space")) {
 gameObject.BroadcastMessage("ApplyDamage", 1.0f);
}

とやってスペースキーを一回押すと、ApplyDamage が 100 回近く呼ばれるんですが、こういう仕様でしょうか?
呼び出しを 1 回にするのはプログラマー側でやらないと駄目ですか?