プレイヤーが接触したオブジェクトをプレイヤーの向いている方向に飛ばすためには、プレイヤーの向きを取得し、その向きに力を加えることで実現できます。具体的なコードは以下のようになります

void OnCollisionEnter(Collision collision)
{
// プレイヤーと衝突した場合
if (collision.gameObject.tag == "Player")
{
// プレイヤーの向きを取得
Vector3 playerDirection = collision.gameObject.transform.forward;

// プレイヤーの向きに力を加える
GetComponent<Rigidbody>().AddForce(playerDirection * forceMagnitude);
}
}
このコードでは、`OnCollisionEnter`関数を使用してプレイヤーとの衝突を検出し、衝突したオブジェクトにプレイヤーの向き(`transform.forward`)に力を加えています。`forceMagnitude`は力の大きさで、これはあらかじめ適切な値に設定しておく必要があります。

この方法であれば、プレイヤーがどの方向を向いていても、接触したオブジェクトはその方向に飛んでいくはずです。ただし、このコードは基本的なものであり、具体的なゲームの状況や要件によっては調整が必要かもしれません。例えば、力の大きさや、飛ばす方向(水平方向だけ、または上下方向も含む)などを調整することが考えられます。また、オブジェクトが飛ぶ速度や距離も力の大きさやオブジェクトの質量によって変わるため、これらのパラメータも適切に設定する必要があります。具体的な値はテストプレイしながら調整してみてください。