フラッピーバード風ゲームの作り方

Unityで2Dフラッピーバード風ゲームを作る方法その6:プレイヤーのジャンプを作ろう

かとこう

ども!カトサンラボのかとこうです。

この記事ではフラッピーバード風ゲームを
作る方法その6ということで、

「プレイヤーのジャンプ」

を作る方法について解説しています。

スポンサーリンク

1、ジャンプ用のC#スクリプトを作ろう

まずはプレイヤーにつける
ジャンプ用のC#スクリプトを
作っていきます。

プロジェクトウインドウの+ボタンを
クリックしましょう。

プロジェクトウインドウの+ボタンをクリックする画像

そして表示されたメニューから

「C# Script」

を選んでクリックします。

表示されたメニューからC#スクリプトをクリックする画像

そうすることで新しいC#スクリプトが
作られて名前が変更できるようになっています。

新しくC#スクリプトが作られた画像

この名前を

「PlayerJump」

と入力しました。

これでC#スクリプトを
作る作業は完了です。

新しく作られたC#スクリプトのファイルの名前を変更した画像

2、プレイヤーにジャンプ用のC#スクリプトをつけよう

次は作ったジャンプ用のC#スクリプトを
プレイヤーにつけていきましょう。

ヒエラルキーでPlayerをクリックします。

ヒエラルキーでプレイヤーをクリックした画像

プレイヤーのインスペクターが表示されました。

プレイヤーのインスペクターが表示された画像

そうしたらインスペクターを下に
スクロールしてAdd Componentが
表示されるようにします。

プレイヤーのインスペクターを下の方にスクロールした画像

その後、プロジェクトウインドウにある
PlayerJumpスクリプトをクリックしたまま
インスペクターへ動かしていきます。

プレイヤージャンプのスクリプトをクリックした画像

インスペクターのAdd Componentの
あたりに持って行ったらクリックを
離します。

プレイヤージャンプスクリプトをクリックしたままインスペクターに移動させた画像

そうすることでスクリプトが付いて
インスペクターに表示されました。

プレイヤージャンプスクリプトがインスペクターに表示された画像

3、ジャンプ用のC#スクリプトにコードを書こう

プレイヤーにジャンプ用のスクリプトを
つけることができたら、次はコードを
書いていきましょう。

まずはPlayerJumpスクリプトを
ダブルクリックして開きます。

プレイヤージャンプスクリプトをダブルクリックした画像

コードエディタが開いてPlayerJumpの
内容が表示されました。

ここに以下のコードを書いていきます。

プレイヤージャンプの中身が表示された画像
using System.Colections;
using System.Colections.Generic;
using UnityEngine;

public class PlayerJump : MonoBehaviour
{
  public int jumpPower = 500; // プレイヤーのジャンプ力を設定する
  Rigidbody2D rb2d; // リジッドボディ2Dを使うための宣言


  // Start is caled before the first frame update
  void Start()
  {
   // rb2dにコンポーネントのリジッドボディ2Dを入れて上げる
   rb2d = GetComponent<Rigidbody2D>();
  }


  // Update is caled once per frame
  void Update()
  {
    if (Input.GetKeyDown(KeyCode.Space)) // もしスペースキーが押されたなら
    {
      // リジッドボディ2Dに力を加える(上方向にジャンプ力をかける)
      rb2d.AddForce(transform.up * jumpPower);
    }
  }
}

コードを書くことができたら、
上にあるファイルを選んで
メニューを表示させます。

上部メニューのファイルを選んだ画像

そしてメニューの中から

「保存」

を選んでクリックしましょう。

これでジャンプのコードを書く
作業は完了です。

ファイルのメニューから保存を選んだ画像

4、ジャンプができるかテストプレイで確認しよう

コードを書いた次はテストプレイをして
ちゃんとジャンプができるかを確認しましょう。

テストプレイの前に一つ設定を行います。

まずPlayerをクリックします。

ヒエラルキーでプレイヤーをクリックした画像

そしてインスペクターが表示されたら、
Rigidbody 2Dの中にある

「Constraints」

という項目を見ていきます。

インスペクターのConstraintsをクリックする画像

Constraintsをクリックすると
いくつか項目が表示されました。

この中から、

「Freeze Rotation」

を見ていきましょう。

インスペクターのConstraintsのフリーズローテーションのZを確認する画像

このFreeze RotationのZの項目を
クリックしてチェックをつけます。

ここにチェックをつけておくと
プレイヤーが何かにぶつかったり
した時に回転しなくなるんですね。

インスペクターのConstraintsのフリーズローテーションのZにチェックを入れた画像

そして、今回はジャンプのテストプレイを
行いやすくするために、

「AutoSideMoveスクリプト」

をオフにしておきます。

インスペクターのAutoSideMoveを確認する画像

名前の横にあるチェックを外しました。

これで横に自動で動く機能が
一時的にオフになります。

インスペクターのAutoSideMoveのチェックをオフにした画像

そうしましたらシーンビューの上にある
プレイボタンを押してテストプレイを
開始しましょう。

シーンビューの上にあるプレイボタンをクリックする画像

テストプレイが始まったら、
キーボードのスペースキーを
クリックします。

これでジャンプができたら
確認はOKです。

テストプレイでプレイヤーがジャンプできた画像

ジャンプの確認ができたらプレイボタンを
クリックしてテストプレイを終了します。

そしてオフにしたAutoSideMoveに
チェックをつけておきましょう。

これで今回の作業は完了になります。

インスペクターのAutoSideMoveのチェックをつけた画像

5、まとめ

ということで、この記事では
プレイヤーのジャンプの作り方を
解説してきました。

プレイヤーのジャンプを作成しようのまとめ

今回作ったジャンプの機能は
スペースキーを押せば何度でも
ジャンプができるようになっています。

ジャンプの高さの調整などはまた別の
記事で解説する予定です。

次の記事では、プレイヤーをカメラが
追従するような機能を作っていこうと
思います。

それでは今回の記事は以上です。

読んでいただきありがとうございました!

-フラッピーバード風ゲームの作り方