[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart11 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
933(1): 名前は開発中のものです。 [sage] 2023/10/31(火) 18:49:45.92 ID:d8ooapVa(1/2) AAS
プレイヤーが接触したオブジェクトをプレイヤーの向いている方向に飛ばすためには、プレイヤーの向きを取得し、その向きに力を加えることで実現できます。具体的なコードは以下のようになります
void OnCollisionEnter(Collision collision)
{
// プレイヤーと衝突した場合
if (collision.gameObject.tag == "Player")
{
// プレイヤーの向きを取得
Vector3 playerDirection = collision.gameObject.transform.forward;
// プレイヤーの向きに力を加える
GetComponent<Rigidbody>().AddForce(playerDirection * forceMagnitude);
}
}
このコードでは、`OnCollisionEnter`関数を使用してプレイヤーとの衝突を検出し、衝突したオブジェクトにプレイヤーの向き(`transform.forward`)に力を加えています。`forceMagnitude`は力の大きさで、これはあらかじめ適切な値に設定しておく必要があります。
この方法であれば、プレイヤーがどの方向を向いていても、接触したオブジェクトはその方向に飛んでいくはずです。ただし、このコードは基本的なものであり、具体的なゲームの状況や要件によっては調整が必要かもしれません。例えば、力の大きさや、飛ばす方向(水平方向だけ、または上下方向も含む)などを調整することが考えられます。また、オブジェクトが飛ぶ速度や距離も力の大きさやオブジェクトの質量によって変わるため、これらのパラメータも適切に設定する必要があります。具体的な値はテストプレイしながら調整してみてください。
935: 名前は開発中のものです。 [sage] 2023/10/31(火) 23:16:36.77 ID:d8ooapVa(2/2) AAS
>>934
そう
Bingに上の質問投げた回答
Unityとも言ってないのにUnityのC#で返してきたからエスパーかと思ったわ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s