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

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

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

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

0回答

1214閲覧

生成する時に自身のRotateを取得するには

GOTOken

総合スコア54

C#

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

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/06/25 22:49

問題点

スクリプトをアタッチしているオブジェクトの回転軸を取得しようとしたが、Prefab時の角度のままで生成された。
解決しようとしたこと

自身のTransformを取得し、それを変数宣言しrotationを取得しようとした。

原因候補

生成されるbulletPrefabの中のスクリプトで

transform.Translate(0,bulletspeed,0);

の処理を追加しているからかもしれないと感じた。この際、求めた角度に飛ばす場合は別の書き方をしなければならないのか。
実装したいこと

やりたいことは、自身の角度の方向に生成するようにしたい。また生成されるオブジェクト自身も方向に合わせて回転させるようにしたい。

c#

1 void Update () { 2 //if (Input.GetKeyDown(KeyCode.Space )) 3 //{ 4 // Instantiate(BulletPrefab, transform.position, Quaternion.identity); 5 // BulletPrefab.transform.position += transform.position * bulletSpeed; 6 //} 7 if (Input.GetKeyDown(KeyCode.Joystick1Button1)) 8 { 9 var nowPos = this.transform.position; 10 11 12 float x = this.transform.position.x - prevPos.x; 13 float y = this.transform.position.y - prevPos.y; 14 15 Vector2 vec = new Vector2(x, y).normalized; 16 17 18 float rot = Mathf.Atan2(vec.y, vec.x) * 180 / Mathf.PI; 19 if (rot > 180) rot -= 360; 20 if (rot < -180) rot += 360; 21 22 prevPos = nowPos; 23 24 Debug.Log("Angle = " + rot); 25 prevPos = this.transform.position; 26 27 Instantiate(BulletPrefab,my_Trans.position,my_Trans.rotation); 28 29 // BulletPrefab.transform.position += transform.position * bulletSpeed; 30 //target_to_Move 31 } 32 } 33 void setup() 34 { 35 prevPos = this.transform.position; 36 } 37

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

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

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

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

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

ko.tu

2018/06/26 02:49

ちょっとわかりずらいので図とかを張り付けるとよいと思います
sakura_hana

2018/06/26 11:18

「transform.Translate」は位置を書き換えているだけ(このコード自体に方向を変える能力は無い)ので原因ではないです。また、「my_Trans」の定義部が見当たりません。本当に正しく「自身のTransform」が代入されているか確認してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問