実装が思ったとおりにいかない
c#
1 public float Playerspped; 2 public Transform target; 3 public GameObject BulletPrefab; 4 5 void Update () { 6 7 if (Input.GetKeyDown(KeyCode.Joystick1Button1)) 8 { 9 Instantiate(BulletPrefab,prevPos,my_Trans.rotation); 10 } 11 } 12 13 private void FixedUpdate() 14 { 15 PlayerMove(); 16 } 17 void PlayerMove() 18 { 19 //移動処理 20 float dy = Input.GetAxis("Vertical") * Playerspped; 21 float dx = Input.GetAxis("Horizontal") * Playerspped; 22 23 rb2d.velocity = new Vector2(dx, dy); 24 if(dy != 0 || dx != 0) 25 { 26 var diff = (target_to_Move.position - transform.position).normalized; 27 transform.rotation = Quaternion.FromToRotation(Vector3.up, diff); 28 29 } 30 }
このように記述したとき、移動する際にぐるぐると進行方向に回転してしまい、向きが思った角度にならなくなっています。実際は、移動する際にキーの入力に対して、キーの入力方向にオブジェクトが向くというものを実装しようとしました。
実装のイメージ
PS4コントローラーのスティックで、左に倒すと、オブジェクトの頭になっている部分が左に向く。 右に倒すと、頭が右へのような感じです。 ゲームでは、「Bit Blaster」のような旋回をしたいと考えています。
生成位置はPlayerの現在の角度に設定しています。
制御の仕方はUnityのベクトルとQuaternionによる回転について
こちらを参考にさせていただきました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/27 11:30
2018/06/27 12:11
2018/06/27 13:04
2018/06/27 17:58
2018/06/28 02:53
2018/06/28 07:08
2018/06/28 07:40
2018/06/28 12:25
2018/06/29 02:22