• WEB

初心者がUnity2Dでアクションゲームを作るチュートリアル その4 【キー操作編】

  • マイケル
    マイケル デザインちーむ
  • このエントリーをはてなブックマークに追加
初心者がUnity2Dでアクションゲームを作るチュートリアル その4 【キー操作編】

こんにちは。
前回の続きで、今回はプレイヤーのキー操作ができるようやっていきます。

まず、変数の設定から。プレイヤーの動くスピードとジャンプ力と、スライドモーションを設定します。
スライドモーションは、プレイヤーが動いて、止まる時に急にピタッと止まると不自然なのでスライドしてから止まるようにする為のものです。


public float walkForce = 10f; //スピード
public float flyForce = 300f; //ジャンプ力
[Range(0,1)] public float sliding = 0.9f; //スライドモーション

次に、十字キーで左右に動くようにします。
FixedUpdate()の中に、以下を追記します。


// 左右のキー変数
float h = Input.GetAxis("Horizontal");

// 速度の変数
Vector2 v = GetComponent<Rigidbody2D>().velocity;

if (h != 0) {
  // 左右の移動
  GetComponent<Rigidbody2D>().velocity = new Vector2(h * walkForce, v.y);
  transform.localScale = new Vector2(Mathf.Sign(h), transform.localScale.y);
} else {
  // スライドモーション
  GetComponent<Rigidbody2D>().velocity = new Vector2(v.x * sliding, v.y);
}

Input.GetAxis(“Horizontal”)は、右を押し続けると0から1.0まで増えていき、左を押し続けると0から-1.0まで減っていきます。

10行目でプレイヤーの向きを制御しています。scaleをマイナスにするとスプライト(プレイヤー)は反転するのでそれを利用しています。
Mathf.Signは、負の値が入れば-1を、正の値が入れば1を返してくれます。

再生して、左右のキーを押して確認します。

Unityの動作確認のアニメーション画像

次に、ジャンプもできるように設定していきます。

また、FixedUpdate()の中に、以下を追記します。


//ジャンプ
if(Input.GetKey(KeyCode.UpArrow) && grounded)
GetComponent<Rigidbody2D>().AddForce(Vector2.up * flyForce);

Input.GetKey(KeyCode.UpArrow)は、十字キーの上キーのことです。
再生して、上キーを押して確認します。

Unityの動作確認のアニメーション画像

色々とジャンプさせてみると分かるのですがフワッとしたジャンプをしてしまい、本家のマ○オとはちょっと感じが違いますのでこの辺りは微調整が必要そうです。他にもあやしいところはありますね。

他にも色々と時間制限や点数なんかを付け加えるとかゲーム要素を加えてくいくと、それなりに面白くなります。

今までのあたり判定やアニメーションを駆使して、アクションゲームの醍醐味である敵キャラなんかをつくって遊んだりしみてください。

Unityの動作確認のアニメーション画像

ブラウザゲーム(Chrome以外)としてビルドしたのはコチラです。

とりあえず、こちら一連のチュートリアルは終わりになります。
ありがとうござました。

このエントリーをはてなブックマークに追加

マイケルが最近書いた記事

WRITERS POSTS もっと見る

他にもこんな記事が読まれています!

  • WEB
  • マーケティング
  • サーバー・ネットワーク
  • ライフスタイル
  • お知らせ