
(1)下準備
- Sphereを作成・・・>名前を「Ball」に変更
- Planeを作成・・・>名前を「Floor」に変更
- 「Ballオブジェクト」に「Rigidbody」を追加する。

(2)スクリプトの作成
- 新規にC# スクリプトを作成
- 名前を「BallJump」に変更
- 下記のコードを書いてチェック
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BallJump : MonoBehaviour
{
public float jumpPower;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))
{
rb.velocity = Vector3.up * jumpPower;
}
}
}
(3)設定
- スクリプトをBallオブジェクトに追加
- Jump Powerを設定

- 設定が完了したらゲーム再生
- スペースキーでジャンプすれば成功です。

(3)二段ジャンプ(空中ジャンプ)の禁止
- BallJumpスクリプトを改良する。
- 「★追加」部分のコードを追加する。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BallJump : MonoBehaviour
{
public float jumpPower;
private Rigidbody rb;
// ★追加
private bool isJumping = false;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
// ★追加
if(Input.GetKeyDown(KeyCode.Space) && !isJumping)
{
rb.velocity = Vector3.up * jumpPower;
// ★追加
isJumping = true;
}
}
}
- ゲームを再生して確認
- 「1回だけ」ジャンプできれば成功です。
(4)ジャンプを復活させる
- Floorに触れたらジャンプが復活するようにします。
- FloorにTagを設定する。

- BallJumpスクリプトを改良する。
- 「★★追加」部分のコードを追加する。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BallJump : MonoBehaviour
{
public float jumpPower;
private Rigidbody rb;
private bool isJumping = false;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
if(Input.GetKeyDown(KeyCode.Space) && !isJumping)
{
rb.velocity = Vector3.up * jumpPower;
isJumping = true;
}
}
// ★★追加
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.CompareTag("Floor"))
{
isJumping = false;
}
}
}
- ゲームを再生して確認
- 「空中ではジャンプできない」「床に触れたらジャンプ復活する」で成功です。