2015.07.01
はじめてのUnity 【第13回 Unityでバランスゲームを作ろう①】 ~キー入力でオブジェクトを動かす編~
はじめてのUnity 【第13回 Unityでバランスゲームを作ろう①】 ~キー入力でオブジェクトを動かす編~
Unityでバランスゲームを作ろう①
~キー入力でオブジェクトを動かす編~
前回、Updateメソッドを使ってオブジェクトを回転させました。
今回は、キー入力によってオブジェクトを任意の方向に回転させてみたいと思います。
また、今までやってきたコンポーネントを組み合わせて、
方向キーを入力してステージを傾けて、ボールを穴に落とすといった、ちょっとしたゲームを作ってみます。
Input.GetKey() メソッド
何かしらの入力に対して処理を返すメソッドはいくつかありますが、今回はGetKey系のメソッドを使用します。
(他には、Input.GetButton系、Input.GetMouseButton系 などがあり、用途によって使い分けます。)
サンプルコード
今回使用するサンプルコードです。
using UnityEngine; using System.Collections; public class GetKey : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetKey("up")) { transform.Rotate (1f,0f,0f); } if (Input.GetKey("down")) { transform.Rotate (-1f,0f,0f); } if (Input.GetKey("right")) { transform.Rotate (0f,0f,-1f); } if (Input.GetKey("left")) { transform.Rotate (0f,0f,1f); } } }
スクリプトの12~26行目を見てみましょう。
前回紹介したUpdate() メソッドがあり、その中にif() というメソッドが4つあります。
さらにif() の中には、Input.GetKey() というメソッドがあります。
if() というメソッドは、「もし()なら、{}する」というものです。
Input.GetKey() メソッドは、「()の中のキー入力に対して、{}する」というものです。
if (Input.GetKey("up")) { transform.Rotate (1f,0f,0f); }
つまり14~15行目には
「もし、upキーの入力があったら、TransformコンポーネントのRotateの値を、X軸を中心に1フレーム毎に1度回転する」
という内容のスクリプトが書かれています。
これが上下左右の4つのキー入力分なので、4つ書かれているというわけです。
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発