Unity 2dのジャンプ力の実装
皆さん、初めまして。Kです。
突然ですがunityで2dのアクションゲームを作るとき、
ジャンプ力を実装したいですよね?
今回はジャンプ力(無理やり)の実装方法を教えます!!
1、足場を作る
まず主人公が乗れる足場を作りましょう。
作り方
- Hierarchyを右クリックする
- 2D ObjectのSpriteを左クリックする
- Sprite RendererのSpriteの右端の⦿を左クリックして好きなモノを、左クリックする
- ScaleのXとYの値を大きくする
- Add Componentを左クリックするPhysics 2Dを左クリックする
- Box Collider 2Dを左クリックする
これで足場を作ることができました!!
2、主人公を作る
次に主人公を作りましょう。
作り方
- Hierarchyを右クリックする
- 2D ObjectのSpriteを左クリックする
- Sprite RendererのSpriteの右端の⦿を左クリックして好きなモノを、左クリックする
- ScaleのXとYの値を大きくする
- Add Componentを左クリックするPhysics 2Dを左クリックする
- Box Collider 2Dを左クリックする
- Add Componentを左クリックするPhysics 2Dを左クリックする
- Rigidbody 2Dを左クリックする
- 主人公のオブジェクトを足場の上に置く
一回テストプレイ(上の方にある▸のマーク)を押してみましょう。
主人公のオブジェクトが足場の上に立つと思います。
確認出来たらもう一度テストプレイのマークを押してテストプレイを終了しましょう。
3、ジャンプ力を実装する
さいごにジャンプ力を実装しましょう!!
- Assetsを右クリックしてCreateにカーソルを合わせる
- その中のC# scriptを左クリックする
- 名前をジャンプ力にする
- 作ったジャンプ力をHierarchyの中の主人公オブジェクトにドラッグアンドドロップする
- 作ったジャンプ力をダブルクリックでIDE(プログラムを書いたりするソフト)を起動する
- 次のプログラムのように書く
ジャンプ力
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の値を変えるとジャンプボタンを離したときの、
落下スピードが変わります。
これは無理やりジャンプ力をつけているだけなので
おかしな挙動をするかも、、、
まだジャンプ力をつけただけなので、
動けないしジャンプボタンを連打すると、
無限にジャンプができてしまいます。
それらは次に説明します。
こんな感じのブログを更新していくと思うので、
よろしくお願いします。