Unity 2dのジャンプ力の実装

プログラミング2d, unity

皆さん、初めまして。Kです。

突然ですがunityで2dのアクションゲームを作るとき、

ジャンプ力を実装したいですよね?

今回はジャンプ力(無理やり)の実装方法を教えます!!

1、足場を作る

まず主人公が乗れる足場を作りましょう。

作り方

  1. Hierarchyを右クリックする
  2. 2D ObjectのSpriteを左クリックする
  3. Sprite RendererのSpriteの右端の⦿を左クリックして好きなモノを、左クリックする
  4. ScaleのXとYの値を大きくする
  5. Add Componentを左クリックするPhysics 2Dを左クリックする
  6. Box Collider 2Dを左クリックする

これで足場を作ることができました!!

2、主人公を作る

次に主人公を作りましょう。

作り方

  1. Hierarchyを右クリックする
  2. 2D ObjectのSpriteを左クリックする
  3. Sprite RendererのSpriteの右端の⦿を左クリックして好きなモノを、左クリックする
  4. ScaleのXとYの値を大きくする
  5. Add Componentを左クリックするPhysics 2Dを左クリックする
  6. Box Collider 2Dを左クリックする
  7. Add Componentを左クリックするPhysics 2Dを左クリックする
  8. Rigidbody 2Dを左クリックする
  9. 主人公のオブジェクトを足場の上に置く

一回テストプレイ(上の方にある▸のマーク)を押してみましょう。

主人公のオブジェクトが足場の上に立つと思います。

確認出来たらもう一度テストプレイのマークを押してテストプレイを終了しましょう。

3、ジャンプ力を実装する

さいごにジャンプ力を実装しましょう!!

  1. Assetsを右クリックしてCreateにカーソルを合わせる
  2. その中のC# scriptを左クリックする
  3. 名前をジャンプ力にする
  4. 作ったジャンプ力をHierarchyの中の主人公オブジェクトにドラッグアンドドロップする
  5. 作ったジャンプ力をダブルクリックでIDE(プログラムを書いたりするソフト)を起動する
  6. 次のプログラムのように書く

ジャンプ力

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ジャンプ力 : MonoBehaviour {
	Rigidbody2D jumpppwer;
	public int jumpmax = 500;
	public int jumpgravity = 100;

	void Start () {
		jumpppwer = GetComponent<Rigidbody2D>();
	}

	void FixedUpdate () {
		if (Input.GetKeyDown (KeyCode.Space)) {

			jumpppwer.AddForce (Vector2.up * jumpmax);

		}

		if (Input.GetKeyUp (KeyCode.Space)) {
			jumpppwer.AddForce (Vector2.down * jumpgravity);
		}
	}
}

これでテストプレイを押してスペースキーを押してください

これでたぶんジャンプできてると思います

jumpmaxはジャンプの限界の値で、

jumpgravityはジャンプしたときにかかる重力の値です。

jumpmaxの値を変えるとジャンプの高さが変わります。

jumpgravityの値を変えるとジャンプボタンを離したときの、

落下スピードが変わります。

これは無理やりジャンプ力をつけているだけなので

おかしな挙動をするかも、、、

まだジャンプ力をつけただけなので、

動けないしジャンプボタンを連打すると、

無限にジャンプができてしまいます。

それらは次に説明します。

こんな感じのブログを更新していくと思うので、

よろしくお願いします。