スプライトを移動する - キー入力・コントローラー入力 (GetAxisRaw入力)によるオブジェクトの移動 - Unity

GetAxisRaw入力 (キー入力・コントローラー入力) でスプライトを移動するコードを紹介します。

事前準備

プロジェクトを作成し、スプライトを配置します。スプライトの配置についてはこちらの記事を参照してください。

手順

スクリプトの作成と実装

ウィンドウ下部の[プロジェクト]ウィンドウの左側のツリービューの[Assets]のノードをクリックして選択します。右クリックしてポップアップメニューを表示します。メニューの[作成]をクリックしサブメニューの[C# スクリプト]をクリックします。


新しいスクリプトファイルが作成されますので、名前を設定します。今回は "MoveScript"としました。


[プロジェクト]ウィンドウに表示されている、先ほど作成した "MoveScript"のアイコンをダブルクリックします。Visual Studioが起動します。


Visual Studio が起動しスクリプトの編集画面が表示されます。


Update()メソッドに下記のコードを記述します。
MoveScript.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class MoveScript : MonoBehaviour {

  // Use this for initialization
  void Start () {

  }

  // Update is called once per frame
  void Update () {
 
    float x = Input.GetAxisRaw("Horizontal");
    float y = Input.GetAxisRaw("Vertical");
    this.transform.position += new Vector3(x, y);

  }
}

コード解説

下記のコードにより、入力デバイスから入力情報を取得します。キーボードであれば、カーソルキー、ゲームパッドであれば方向キーの情報を取得します。引数に "Horizontal" を指定すると横方向の変化値、"Vertical" を与えると縦方向の変化値を取得できます。
  float x = Input.GetAxisRaw("Horizontal");
  float y = Input.GetAxisRaw("Vertical");

this.transform.position がスクリプトをアタッチしたオブジェクトの座標値になります。 position プロパティに Verctor3 オブジェクトの値を足し込むことでオブジェクトの位置を変更します。今回は2次元方向の移動のみのため、x,yの2座標を変化させます。
  this.transform.position += new Vector3(x, y);

スクリプトのアタッチ

Unityに戻り、シーンに配置したスプライトをクリックして選択します。右側の[インスペクター]ウィンドウの一番下の[コンポーネントを追加]ボタンをクリックします。下図のドロップダウンメニューが表示されます。


ドロップダウンメニューの検索ボックスに "MoveScript" と入力して先ほど作成した"MoveSctript"スクリプトファイルを探してクリックします。


[インスペクター]ウィンドウに[Move Script (Script)]の項目が追加されます。スプライトにスクリプトのアタッチができました。

実行結果

ツールバーの再生ボタンをクリックして実行します。下図の画面が表示されます。


カーソルキーを押下すると、スプライトが移動します。


配置したスプライトは上下左右の方向に移動させることができます。


以上で、GetAxisRawの入力を用いた、カーソルキーでスプライトを移動できるプログラムが作成できました。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2018-09-02
iPentec all rights reserverd.