2017-12-20 25 views
0
私は団結で加速度入力してオブジェクトを移動したい

:使用せずUnity3D input.acceleration

if (...) 
transform.translate(vector2.right*speed); 
else if (...) 
transform.translate(vector2.left*speed); 

私は条件が

+2

オブジェクトを右に動かすにはどうすればよいですか?あなたのオブジェクトを左に動かすのは何ですか?これらの質問に対する回答はあなたの条件になります。 – ryeMoss

答えて

2

さてどうあるべきかわかりませんが、あなたが技術的にこの運動を達成することができますまったくの条件。単にUpdate()またはFixedUpdate()(FixedUpdate()をお勧めします)にこのようなものを入れてください。

Vector2 dir = Vector2.zero; 
void FixedUpdate() 
{ 
    dir.x = Input.acceleration.x; 
    transform.translate(dir * speed * Time.deltaTime); 
} 

お使いの携帯電話は、それが右に傾いている場合Input.acceleration.xが0である面上に平らに置かれたとき、値が正となるためです。左に傾けた場合、値は負になります。したがって条件付きのままにしておきます。

+1

Input.GetAxis( "Horizo​​ntal")を使用しても、条件を追加する必要はありません。 –

+0

本当です!私は物事が不安定になる傾向があるので、運動ロジックの条件を可能な限り避けようとしています。 –

+0

Brandonに感謝します。私のキャラクターには2つのクラスがあります。ファーストクラスでは、強制的に衝突入力(キャラクタも重力を持っている)を加えてキャラクタをジャンプさせ、次に加速で左右に動かしたいと思っています。私はあなたが言ったことをしたが、キャラクターは1つまたは2つのジャンプ、任意のアイデアの後にジャンプを停止する? –