【初心者向け】Unityでオブジェクトをジャンプさせる方法【AddForce】

  • オブジェクトをジャンプさせたい

という悩みを解決します。

結論としてAddForceを使います。他の方法もありますが、今回はAddForceを使った方法ですすめていきます。

スクリプトをアタッチするまでやスクリプトの実装例もお伝えするので、Unity使いはじめの方でも安心できる内容になっています。

スクリプト例だけ知りたい方はスクリプト例のところまで、すすめてください。ゆっくりご覧ください。

レイアウトは【2 by 3】です。見にくい方は【Unity】効率アップ!レイアウト(Layout)を変更してできる5個の開発画面で【2 by 3】に変更してください。

目次

オブジェクトをAddForceを使ってジャンプさせる

オブジェクトの用意

オブジェクトをダウンロード

自分はヒューマンピクトグラムさんの画像を使っていきます。自分のジャンプさせたいオブジェクがある方はそれを使ってください。

Projectウィンドウに先ほどの画像データをいれる

Projectウィンドウに先ほどのデータをいれる

【Projectウィンドウに先程のデータをドラッグ&ドロップ】

すでにオブジェクトのデータをプロジェクトウィンドウに入れている方はスルーしてください。

オブジェクトの設置

オブジェクトの設置

【Projectウィンドウでさきほどのオブジェクトを選択しSceneビューにドラッグ&ドロップ】

もし名前を変えたい人はUnityでオブジェクトの名前を変更する方法【基本知識】をご覧ください。

スクリプトの作成

スクリプトの作成

【Projectウィンドウ】→【Create】→【C#Script】→【名前をPlayerController】(名前はなんでも良い)

Rigidbody2DコンポーネントをPlayerにつける

Rigidbody2DコンポーネントをPlayerにつける

【Player選択】→【Inspector】→【Add Component】→【Rigidbody2D】

Rigidbody2Dは物理的機能をつけるようなものだと思ってください。ここでは詳細な機能は省きます。詳しく知りたい人は【Unity】オブジェクトに物理機能をつけるRigidbodyの使い方、設定方法をご覧ください。

あわせて読みたい
【Unity】オブジェクトに物理機能をつけるRigidbodyの使い方、設定方法 なにもコンポーネント(機能)をつけない場合、上の図のように、球体は落ちてきません。なぜなら、重力機能(物理シュミレーション)をつけていないからです。 今回はRi...

スクリプトを開く

Unityでスクリプトを開く

【Projectウィンドウ】→【PlayerControllerをダブルクリック】

スクリプト例

PlayerController.cs

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

public class PlayerController : MonoBehaviour {

    Rigidbody2D rigit2D;
    float jumpPower = 700.0f;

    // Use this for initialization
void Start () {
        this.rigit2D = GetComponent<Rigidbody2D>();
}

    // Update is called once per frame
void Update () {

        // ジャンプさせる
        if (Input.GetKeyDown(KeyCode.Space))
        {
            this.rigit2D.AddForce(transform.up * jumpPower);
        }
}
}

if (Input.GetKeyDown(KeyCode.Space))
{
// 処理
}
Spaceキー押したら、処理を行う

this.rigit2D.AddForce(transform.up * jumpPower);

この部分でジャンプするように設定しています。【junmPower】変数の値を変えることで、どのぐらいジャンプするかを変えることができます。

スクリプトをアタッチ

スクリプトをオブジェクトにアタッチ

【PlayerControllerスクリプトを動かしたいオブジェクトにドラッグ&ドロップ】

スクリプトをオブジェクトにアタッチ(紐付ける)ことで、はじめてスクリプトの内容を実行することができます。

こんな感じになる

AddForceを使ってオブジェクトをジャンプさせる

Spaceキーを押すたびにジャンプするようになります。ゲーム実行ボタンは上部の▷この矢印です。実行して、ジャンプすることを確認してみてください。

ちなみにこの記事使うとジャンプ中に横移動もできるようになるよ

あわせて読みたい
【Unity】オブジェクトを横移動(x軸方向)させるメソッドを使おう【Translate】 オブジェクトを横移動させる方法を知りたい という悩みを解決します。 TransformのTranslateメソッドを使うことで、横移動させることができます。 スクリプトをアタッチ...

この記事を使うと横移動ができるようになります。つまりジャンプのスクリプトと合わせることでジャンプ中でも横移動できるようになります。

スクリプト例

PlayerController.cs

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

public class PlayerController : MonoBehaviour {

    Rigidbody2D rigit2D;

    float jumpPower = 700.0f;

    // Use this for initialization
void Start () {
        this.rigit2D = GetComponent<Rigidbody2D>();
}

    // Update is called once per frame
void Update () {

        // ジャンプさせる
        if (Input.GetKeyDown(KeyCode.Space))
        {
            this.rigit2D.AddForce(transform.up * jumpPower);
        }

        // Aが押されたときに左に移動
        if (Input.GetKey(KeyCode.A))
        {
            transform.Translate(-0.05f, 0, 0);
        }

        // Dが押されたときに右に移動
        if (Input.GetKey(KeyCode.D))
        {
            transform.Translate(0.05f, 0, 0);
        }

    }
}

AddForceを使ってオブジェクトをジャンプさせる

ゲーム開発の参考にしていただければ嬉しいです。

まとめ

  • AddForceはオブジェクトに力を加えることができる
  • AddForceをジャンプをさせることができる

Unityでゲームを作りはじめたばかりという人は【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろうでゲームを作ってみてください。

あわせて読みたい
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】 ▼この記事を先に見ておきましょう▼ https://miyagame.net/basis-cs/ 当サイトではUnityでのサンプルゲームを作成することができます。Unityでゲームを作っていきましょ...

以上さぎのみや(@saginomiya8)でした。

AddForceを使ってオブジェクトをジャンプさせる

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次