どうも大石です。
あなたはunityで弾を発射するときの向き
をコントロールしたいと思っていませんか?
この記事を読めば、あなたはunityで
弾を敵に向かって発射させれるようになります。
イメージとしては発射台が敵の方に向き、
弾を発射してくれるとう感じです。
ということで敵がいる向きに弾を発射させたい
なら読んでみてください。
スポンサードサーチ
unityで弾の発射の向きを敵に向ける方法
で結論ですが、
向きをコントロールするには、
transform.LookAt()関数と、
transform.forwardを使えば可能です。
transform.LookAt()関数とは、
オブジェクトが、指定したオブジェクトの
方向を向くようになる関数です。
この関数を使うと、
同時に合わせてベクトル
(オブジェクトをクリックした時にでる、
赤と緑と青の矢印のやつ(x,y,zの軸))も動き、
z軸が指定したオブジェクトの方を向きます。
赤いキューブを発射台に見立ててまして、
灰色キューブが敵です。
ベクトルが敵の方を向いてますね。
でtransform.forwardとは、
オブジェクトのz軸に向かって進むという
記述です。
なので例えばこの記述を使い弾をInstantiateし、
発射するとz軸方向に弾が飛んでいきます。
上記で出した画像でいうと、敵に向かって弾が発射され
飛んでいきます。
ということで、この2つを使えば、
弾の発射の向きを自動でコントロール
してくれるようになり、
敵オブジェクトに向かって、
弾が発射されるという動きになります。
コード的には弾の方のスクリプトの
update()の中に、
transform.position = transform.position + transform.forward
と書けば弾はz軸に向かって進んでくれます。
また発射台にあたるオブジェクトを用意し、
スクリプトには、
if文でキーを押せばInstantiateで弾を発生させる記述と、
transform.LookAt(enemy.transform.position);
をupdate()内に書いておけばいいです。
(前もってGameobject型の変数enemyを宣言し、
敵オブジェクト(弾を打たれる方)を
取得しておきましょう。)
上記のように設定しておけば、
弾の発射の向きは、常に敵の方に向かう
ようになり、
敵に向かって弾が発射されるようになります。
スポンサードサーチ
まとめ
ということでまとめになりますが、
unityで弾の発射の向きをコントロール
したいなら、
transform.LookAt()関数と、
transform.forwardを使いましょう。
すると敵に向かって弾が発射されるように
なりますよ。
それでは読んでもらってありがとうございました。
大石