[Unity] Input.GetKey を使ってObjectを移動させる

PC上の上下左右キーを使ってObjectを移動させてみましょう。Input.GetKeyを使うことで可能になります。Android, iPhoneアプリにする場合はキーが無いので別のものに代用する必要がありますが、まずPC上でのテストのためにこの工程は必要です。
 

Unity 2018.1




Input.GetKey

 
ObjectとしてGameObjectのCapsuleを1つ作成し、TransformでX軸を90°RotationさせてObjectを横にしておきます。
 
input-getkey_02
 
このObjectを前後左右に動かしたいと思います。
 
以下のスクリプトを書いてCapsuleに入れます。

move.cs

 
Input.GetAxisは-1.0fから1.0fの値を返してきます。
Input.GetKeyはup,downなどのキーが押されたときに真となります。
 
もっとも、これは簡略化してこのようにもできます。

 
移動スピード、移動距離を調整したり、別条件を入れたい場合は最初の方法がいいかもしれません。
 

加速度センサーで移動させる

 
キー入力といってもスマホにはありません。スマホである特徴を活かしてスマホを傾けて加速度で移動させるのが面白いでしょう。以下のようなscriptでスマホの傾きを検出してObjectを移動できます。
 

 
まとめるとこのようになります。
move_accelerator.cs

 
あとはCapsuleのスクリプトを入れ替えて「unity Remote 5」などで実機でテストするといいでしょう

UnityアプリをiPhone用に作成する場合に、ハードウェアの依存性の確認が必要です。ただそれを毎回Xcodeプロジェクトとして吐き出して...

ここまできてあれですが、ではキー入力はスマホをターゲットにしていればいらないのかというと、デバッグとして機能検証を行うときにUnity Editorでテストできます。if文で切り分けるなどしておくといいかもしれませんね。