メソッド

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

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の使い方、設定方法をご覧ください。

Rigidbodyの使い方・設定方法
【Unity】オブジェクトに物理機能をつけるRigidbodyの使い方、設定方法【Unity】Rigidbodyコンポーネントの使い方、設定方法をどこよりもわかりやすく、Gifや画像を使って説明します。「Mass」「Drag」「Angular Drag」「Use Gravity」「Is Kinematic」「Interpolate」「Collision Detection」の説明もしています。...

スクリプトを開く

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でオブジェクトを左右に移動させる
【Unity】オブジェクトを横移動(x軸方向)させるメソッドを使おう【Translate】TransformのTranslateメソッドを使えば、X軸方向でもY軸方向でもZ軸方向にでも動かすことができます。今回はX軸軸方向に動かして、左右に動かしていきたいと思います。...

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

スクリプト例

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サンプルゲーム】動画よりわかりやすく記事でゲームを作ろうでゲームを作ってみてください。

Unityサンプルゲーム
【Unity2D&3Dサンプルゲーム】動画よりわかりやすく記事でゲームを作ろう【チュートリアル】【Unity2D&3Dサンプルゲーム・チュートリアル】Unityにおいてのサンプルゲームの作り方が書いてある記事って少ないですよね。そこで当サイトUnishar(ユニシャー)が動画よりわかりやすいサンプルゲームを無料で提供します。...

以上さぎのみや(@saginomiya8)でした。SNSでシェアしてね( ・∇・) 明日からも一生無双でやったりましょう。

ABOUT ME
さぎのみや
さぎのみや
超書手。現在はUnityメディア「ユニシャー」の運営とゲーム開発がメインです。Unity、ライティング関係のお仕事お待ちしております。 >>詳しいプロフィール >>Amazonほしいものリスト
【Unity3D】新しいサンプルゲーム(チュートリアル)を作りました!!!
Unity有料サンプルゲーム

「Unityで3Dゲームを本格的に作っていきたい!」という人におすすめのチュートリアルとなっています。

画像のようなゲームの作り方を販売しています。色々と応用できるチュートリアルとなっています。ぜひ、作ってみてください。

詳細
>>【Unity3Dサンプルゲーム・チュートリアル】「フリスビーを犬に届けよ!」の概要

>>noteでこのチュートリアルを見る

【RT・フォローであなたのスキルが上がる】

シェアフォローする

さぎのみやのモチベが上がる

コンテンツの質が上がる

あなたの能力も上がる

あなたの
Twitterでのシェア

であなたの能力が上がります。

>>さぎのみやのツイッター(@saginomiya8)

 

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


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