SendMessageで指定した関数がそのオブジェクトに無かった場合、デフォルトではエラーが出て止まってしまう。
エラーを出さないようにするためには、第3引数に SendMessageOptions.DontRequireReceiver を指定すれば良い。
if (Physics.Raycast(pos, dir, out hit)) { GameObject obj = hit.collider.gameObject; obj.SendMessage("Hit", 0, SendMessageOptions.DontRequireReceiver); }