まず、私の認識なのですが・・
Translate は、そのオブジェクトが向いている向きに対して動きますよね。
ですので、transform.Rotate で向きを変えると、進む方向が変わります。
例
transform.Translate(1, 0, 0) で一定の方向に動いてる時に…
↓
transform.Rotate(new Vector3(90, 0, 0)) で向きを変えると…
↓
transform.Translate(1, 0, 0) 同じ命令なのに違う方向に移動する
ところが、
Instantiate(Tama, transform.position, new Quaternion(90f, 50f, 80f, 1.0f));
のように、向きを指定して、Instantiate を実行してオブジェを生成すると、向きをどこに向けようと、その後
transform.Translate(1, 0, 0)
をしても、同じ方向に移動します。
Instantiate で指定した向きが無視されてTranslateが実行されます。
これが不便なのです。
向いた方向に移動させるようにするには、Instantiateでどう向きを指定すればいいでしょうか?
ちなみに、やりたいこととしては、
シューティングの敵の弾の発射プロセスを作ってます。
弾のプレハブにはただ一直線に進むだけの命令が書かかれてます。
その弾プレハブをInstantiateで弾を生成する時に、角度を変えて複数生成することによって、いわゆる3way弾や放射状の弾を作ろうとしています。
このやり方なら弾のプレハブが一つで済むので。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/07 10:43