●やりたいこと
3Dゲームです。
戦車がプレイヤー(自機)に向けて弾を発射する。発射されたその弾が上下方向(X軸)にのみ自機を追尾する(つまり、Y,Z軸は方向を変えず最初に与えられた向きのまま進み続ける)
ようにしたいです。
以下のようにやってみたのですが、X軸だけでなく、他の軸でも追尾してしまい、うまくいきません。
●やってみたこと
※X軸のみ自機を向かせる方法がわからなかったので、以下のようにしました
1:まず現在、弾が向いてる方向を記録する
2:LookAt関数を使って自機を見る
3:でも、これだとx軸以外も自機を向いてしまうので、1で記録したY,Z軸の向きを弾に与える
4:結果、Y軸のみが自機を向くことになる
5:向きが変わったので、そのまま前進させる。
実際のコード 弾にアタッチされてるスクリプトです。
void FixedUpdate() { //現在弾が向いてる方向を記録する float yy = transform.rotation.y; float zz = transform.rotation.z; //一旦、自機を見る transform.LookAt(target); //後で代入するためにX軸も記録 float xx = transform.rotation.x; //Y軸とZ軸の値を元に戻す transform.Rotate(xx, yy, zz); //前に進む this.gameObject.GetComponent<Rigidbody>().velocity = (transform.forward); }
なぜこれで、X軸以外でも追尾してしまうのかわかりません。
何かアドバイスをいただけるとありがたいです。

回答1件
あなたの回答
tips
プレビュー