キーボードによる操作 (4/5)
作成:2014-09-06 10:41
更新:2014-09-06 10:41
更新:2014-09-06 10:41
■GetAxisによる移動
GetKeyによる移動は簡単に使えて便利ですが、しかし万能ではありません。例えば、パソコンにジョイスティックを接続して操作したい、なんて場合には使えませんね。
それにUnityではゲームの操作に使うキーの設定をカスタマイズできるようになっていますが、GetKeyで直接Keyを指定して操作するようにしていると、こうしたゲームのカスタマイズ機能は使えないことになります。
実は、ゲーム操作のカスタマイズを使ってゲームのキャラクタを動かすには、GetKeyではなく、別のメソッドを利用する必要があるのです。それが「GetAxis」です。これは、以下のように利用します。
"Horizontal"――水平方向の移動量を示します。
"Vertical"――垂直方向の移動量を示します。
これらの値は、-1〜1の実数(float値)になります。正の値なら上や右へ、負の値なら下や左への移動と判断すればいいでしょう。
では、実際の利用例を下にあげておきましょう(例によってUpdateのみ掲載します)。GetAxis("Horizontal")、GetAxis("Vertical")を使って上下左右の移動量を取り出し、これをVector3の値に加算してtransform.positionに設定しています。これでキーやジョイスティックなどによる入力でゲームオブジェクトを動かせるようになります。
それにUnityではゲームの操作に使うキーの設定をカスタマイズできるようになっていますが、GetKeyで直接Keyを指定して操作するようにしていると、こうしたゲームのカスタマイズ機能は使えないことになります。
実は、ゲーム操作のカスタマイズを使ってゲームのキャラクタを動かすには、GetKeyではなく、別のメソッドを利用する必要があるのです。それが「GetAxis」です。これは、以下のように利用します。
float 変数 = Input.GetAxis( 取り出す値の名前 );
GetAxisは、Unityのゲームに入力されるさまざまな入力情報をまとめて、必要な種類の値を返すようにしてくれるメソッドです。例えば、キャラクタを上下左右に動かしたければ、「水平方向への移動、垂直方向への移動」といった情報をGetAxisで取り出します。これは引数に以下のような名前を指定してやります。"Horizontal"――水平方向の移動量を示します。
"Vertical"――垂直方向の移動量を示します。
これらの値は、-1〜1の実数(float値)になります。正の値なら上や右へ、負の値なら下や左への移動と判断すればいいでしょう。
では、実際の利用例を下にあげておきましょう(例によってUpdateのみ掲載します)。GetAxis("Horizontal")、GetAxis("Vertical")を使って上下左右の移動量を取り出し、これをVector3の値に加算してtransform.positionに設定しています。これでキーやジョイスティックなどによる入力でゲームオブジェクトを動かせるようになります。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
void Update () { this.transform.Rotate(1, 1, 1); float x = Input.GetAxis("Horizontal"); float y = Input.GetAxis("Vertical"); Vector3 v = this.transform.position; v.x += x * 0.05; v.z+= y * 0.05; this.transform.position = v; }
※関連コンテンツ