前提・実現したいこと
UnityでDpadでのキャラクターの移動を行っています。
そこで斜め入力をDpadで入力すると1,1などの値が返ってくると思っていたところが
0.6,0.6や-0.6,0.6などの値が帰ってきてしまい困っています。
普通の上下や左右の入力では1,0や0,-1で帰ってきます。
どうしたらDpadの斜め入力で1,1などの値を返させることができるのでしょうか。
教えてくださるとありがたいです・
発生している問題
Dpadの斜め入力をしたときに1,1や1,-1になると思っていたところが、 それぞれ0.6,0.6と0.6,-0.6のようになる。
該当のソースコード
c#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class PlayerController : MonoBehaviour 6{ 7[SerializeField] 8public readonly float Speed = 0.03f; 9private Vector2 input; 10private Rigidbody2D rigidBody; 11void Start() 12{ 13this.rigidBody = GetComponent<Rigidbody2D>(); 14this.rigidBody.constraints = RigidbodyConstraints2D.FreezeRotation; 15} 16 17void Update() 18{ 19input = new Vector2( 20Input.GetAxisRaw("Horizontal"), 21Input.GetAxisRaw("Vertical")); 22 23} 24 25private void FixedUpdate() 26{ 27if(input == Vector2.zero) 28{ 29return; 30} 31rigidBody.position += input* Speed; 32Debug.Log(input);//この値が0.6,0.6などになってしまう。 33} 34} 35 36
試したこと
Xboxやps3のコントローラで入力してみましたがどちらも0.6や-0.6になってしまいました。
また、このようにしましたがif(input.x==0.6)から下のif文は実行されませんでした。
private void FixedUpdate() { if(input == Vector2.zero) { return; } if(input.x==0.6)input.x=1; if(input.x==-0.6)input.x=-1; if(input.y==0.6)input.y=0.6; if(input.y==-0.6)input.y=-0.6; rigidBody.position += input* Speed; Debug.Log(input);//この値が0.6,0.6などになってしまう。 }
補足情報
Inputマネージャーの設定はDpadの方向でHorizontalとVerticalに分けています
このサイトを参考につくりました。
下の表に書いていない設定は何もいれていません。
項目 | Horizontal | Vertical |
---|---|---|
name | Horizontal | Vertical |
Gravity | 0 | 0 |
Dead | 0.2 | 0.2 |
Sensitivity | 1 | 1 |
Type | Joystick Axis | Joystick Axis |
Axis | 6th axis(joysticks) | 7th axis(joysticks) |
Joy Num | Get Motion from all Joysticks | Get Motion from all Joysticks |

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/04 05:54