2

発射体の動きをシミュレートしたい。次のコードを使用します

 if (Input.GetButtonDown("Fire1")) {
        Rigidbody clone;
        clone = Instantiate(projectile, transform.position+ new Vector3(0f,0f,2f), transform.rotation) as Rigidbody;
        clone.velocity = transform.TransformDirection(Vector3.forward * Speed);
    }

私の発射体はリジッドボディであり、実際の発射体のように向きを設定したいのは、発射体が地面に衝突しようとしているときに、ランチャーの回転ではなく地面に面する必要があることを意味します。速度に基づいて回転を変更する必要があります。私はそれを行う方法がわからない?

4

2 に答える 2

1

コメントで言ったようtransform.LookAt(transform.position + rigidbody.velocity);に、発射体コントローラーの更新に含めるだけです。また、Rigidbody 設定で「ロック回転」をマークしていることを確認してください。そうしないと、物理システムが Rigidbody を自分で回転させようとし、ジッターや非現実的な動作が発生する可能性があります。

于 2013-04-23T08:01:13.527 に答える
0

今は機能しています:)このコード行はtransform.LookAt(transform.position +rigidbody.velocity);です。私の問題を解決しました

于 2014-04-04T15:22:01.067 に答える