はじめに
Ridigdoby2Dを使ったジャンプ方法について紹介します。
ジャンプ回数も自由に設定できるので、2段ジャンプ、3段ジャンプも可能です。
当たり判定
ステージとキャラクターに当たり判定を設定しておきます。
詳しくはこちらの記事を参照ください。
ジャンプさせるスクリプト
以下のコードをジャンプさせたいキャラクターにアタッチします。
スペースキーを押したらジャンプします。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class jump : MonoBehaviour
{
private Rigidbody2D rigidbody2D;
public float jumpForce = 200f;
public int MaxJumpCount = 2;
private int jumpCount = 0;
private void Start()
{
// Rigidbody2Dコンポーネントの取得
rigidbody2D = GetComponent<Rigidbody2D>();
}
private void Update()
{
// スペースを押したらジャンプさせる
// MaxJumpCountの数だけジャンプできる
if (Input.GetKeyDown(KeyCode.Space) && this.jumpCount < MaxJumpCount)
{
this.rigidbody2D.AddForce(transform.up * jumpForce);
jumpCount++;
}
}
// 床に着地したら、jumpCountを0にする
private void OnCollisionEnter2D(Collision2D other)
{
if (other.gameObject.CompareTag("Floor"))
{
jumpCount = 0;
}
}
}
床タグの設定
床には、Floorのタグをつけます。
インスペクターから設定しましょう。
Add Tag…からFloorタグをクリックします。
「+」を押して、Floorと名前をつけて追加します。
完成
2段ジャンプできるようになりました!
ジャンプ力が強すぎて、画面外に行ってしまいますが、インスペクターのMaxJumpCountを調整してみましょう。
人気の2Dアクションゲームアセットはこちら。