質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

17132閲覧

Unity Instantiate関数で向きを指定してオブジェを作っても、それは指定した向きに直進しないのですか?

Sashimi_ShowYu

総合スコア61

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2019/05/06 08:51

まず、私の認識なのですが・・
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弾や放射状の弾を作ろうとしています。
このやり方なら弾のプレハブが一つで済むので。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

c#

1Instantiate(Tama, transform.position, new Quaternion(90f, 50f, 80f, 1.0f));

これは、どのような意図があるのでしょうか?
もし「X軸に90度、Y軸に50度、Z軸に80度回転させる」というのであれば、Quaternion.Eulerを使ってください。

c#

1Instantiate(Tama, transform.position, Quaternion.Euler(90f, 50f, 80f));

投稿2019/05/06 15:13

katsuko

総合スコア3469

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Sashimi_ShowYu

2019/05/07 10:43

変な書き方をしてすみません。混乱の元でした。 作ってるのは2Dなので、回転は一つの軸だけで十分です。それがどの軸かわからなかったのですが、Quaternion.Eulerだと、3番目の数字(Y軸)を変えると自分の思った通りに向きました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問