問題点
スクリプトをアタッチしているオブジェクトの回転軸を取得しようとしたが、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
あなたの回答
tips
プレビュー