【初心者でもわかる】押す長さでジャンプ力を変える 接地判定編

どうもみなさん、名無し( @7shi321)です。

この回では前回のジャンプを応用して押す長さでジャンプ力を変化させたいと思います。

今回の#1ではその骨組みとなる部分を作成していきます。

注意
本記事は2Dを前提に作成していますが、3Dでもあまり変わりません。例えば、Rigidbody 2DがRigidbodyになったり、Box Collider 2DがBox Colliderになったりなど。

押す長さでジャンプ力が変化するゲームの主な例

スーパーマリオ

主なゲームの例としてはスーパーマリオです。

マリオのジャンプは
ボタンを長く推していれば大ジャンプ
少ししか押していなければ小ジャンプ

といったボタンを押す長さでジャンプ力が変化します。

2Dマリオや3Dマリオなどのほとんどのマリオのアクションゲームにはジャンプ要素がありますが、そのほとんどは押す長さでジャンプ力が変化します。

押す長さでジャンプ力を変化させる方法

STEP 1
キャラクターのオブジェクトを作成

Hierarchyに左クリックでCreate Emptyをクリックしてキャラクターを作成します。
STEP 2
Componentを追加

先程追加したGameObjectをHierarchyで選択し、
右側のInspectorでAdd Componentをクリック、
Sprite RendererBox Collider 2DRigidbody 2Dを追加します。
STEP 3
Spriteを選択

Sprite RendererのSpriteの右側にある点を押し、Assetsからキャラクターにしたい画像を選択します。

Assetsに画像がない場合は下のProjectに使用したい画像をドラッグ&ドロップします。

STEP 4
Box Collider 2Dを設定

Box ColliderのEdit Collider、またはOffset(位置)、Size(大きさ)で当たり判定の形を合わせます。

STEP 5
Rigidbody 2Dを設定

Rigidbody 2DのGravity Scaleを0にし、Freeze RotationのZにチェックを入れます。

STEP 6
接地判定用のオブジェクトを作成

STEP 1で作成したGameObjectの上で左クリックし、Create Emptyをクリックして接地判定用のオブジェクトを作成します。

STEP 7
Box Collider 2Dの追加

STEP 6で作成したGameObjectにBox Colider 2Dを追加します。

STEP 8
Box Collider 2Dの設定

Is Triggerにチェックを入れます。

また、STEP 7で追加したBox Collider 2Dの形を設定します。

この当たり判定が地面に触れているときだけジャンプできるようになります

注意
この当たり判定がキャラクターよりも大きくなってしまうとキャラクターの当たり判定を飛び出し、壁を無限にジャンプできてしまったりなどの不具合が起きてしまうのでキャラクターよりも少し小さめに設定しましょう
STEP 9
接地判定のコードを追加

STEP 6で追加したGameObjectにNew Scriptをクリックして次のコードを追加します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GroundCheck : MonoBehaviour
{ //接地判定 public bool isGround = false; private void OnTriggerEnter2D(Collider2D col) { if (col.tag == "Ground") { isGround = true; } } private void OnTriggerExit2D(Collider2D col) { if (col.tag == "Ground") { isGround = false; } }
}

まとめ

以上で接地判定の設定は終了です。

次は地面となるタイルマップの作成と押す長さでジャンプ力が変化するシステムを作っていきます。

よかったらツイッターフォローお願いします!

1 COMMENT

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA