Unity備忘録:加速度センサーaccelerationを使ってもうまく動かない?

備忘録です

 

上手く動かない??

『Unityの教科書 Unity2017完全対応版』をやっているのです.

 

※実行環境

iPhone6s iOS:11.2.6

UnityRemote5を使用

Unity2017.2.0f3

 

2Dゲームを作っていて,プレイヤー(猫)を,スマホの傾きに合わせて左右に移動するようにコードを書いたのですが,思ったような挙動ではなくどうしようってなってます...

ゲーム完成図↓

f:id:mahoosaki:20180301143956p:plain

 

playerのscriptとしては,

 

float walkForce = 30.0f;

float maxWalkSpeed = 2.0f;

float threshold = 2.0f

 

void Update(){

~中略~

//左右移動

 int key = 0;

 if(Input.acceleration.x > this. threshold) key = 1;

 if(Input.acceleration.x < -this.threshold) key = -1;

~中略~

 if(speedx < this.maxWalkSpeed){

   this.rigid2D.AddForce (transform.right * key * this.walkForce);

 }

}

となっている(textのコードそのまま)のですが,青字のコードだけだと,スマホを傾けるたびに猫が一歩進む様になるので,猫を進ませるにはスマホを振っているような状態にしないといけないのです.

スマホを傾けたらそのまま進むには...?

未解決です..

 

スマホを傾けたときだけif内が実行されるので,相対的にスマホの座標?を取っていると思うので,スタート時に座標を設定(左右に移動するほどの傾きでない場合は無視)する必要があるのか?なんて思ってます..

 それか,一度実行されたら傾きが戻るまで実行され続けるようにするか.

 

 

解決次第追加します.

 

 

 

広告を非表示にする