【Unity】ジャンプ台を作る

2020年10月18日Unity

スポンサーリンク

プレイヤーが台に乗ると、ジャンプするジャンプ台を作ります。

プレイヤーとしては以下を使います。

ジャンプする台を用意する

1.Cubeで台を設置します。名前はCubeJumpにします。(わかりやすいようにMaterialで色を付けています。)

ジャンプさせるスクリプトを作成する

1.Jump.csという名前のスクリプトを作成して、以下のコードを記載する。

using UnityEngine;

public class Jump : MonoBehaviour
{
    // ジャンプする力(上向きの力)を定義
    [SerializeField] private float jumpForce = 20.0f;

	/// <summary>
	/// Colliderが他のトリガーに入った時に呼び出される
	/// </summary>
	/// <param name="other">当たった相手のオブジェクト</param>
	private void OnTriggerEnter(Collider other)
	{
		// 当たった相手のタグがPlayerだった場合
		if (other.gameObject.CompareTag("Player"))
		{
			// 当たった相手のRigidbodyコンポーネントを取得して、上向きの力を加える
			other.gameObject.GetComponent<Rigidbody>().AddForce(0, jumpForce, 0, ForceMode.Impulse);
		}
	}
}

スクリプトをジャンプ台にアタッチする

1.Jump.csをジャンプ台(CubeJumpオブジェクト)にアタッチする。
※Jump Forceの値は"20.0f"だと小さくてプレイヤーが上に飛ばない可能性があるので、値を適宜大きくする。

ジャンプ台のBox Colliderの"Is Trigger"にチェックを入れる

1.ジャンプ台(CubeJumpオブジェクト)のBox Colliderコンポーネントの"Is Trigger"にチェックを入れる
※ここをチェックしないとJumpスクリプトの"OnTriggerEnter"関数が反応しない

プレイヤーオブジェクトのTagに"Player"を設定

1.プレイヤーオブジェクト(今回はunitychan)のTagに"Player"を設定

完成

これでプレイヤーがジャンプ台の上に乗ると、プレイヤーが上に飛ぶ

飛ばない場合は、Jump.csの"jumpForce"の値を大きくしてみましょう。
50にするとわかりやすく上に飛んでくれるかも

Unity

Posted by ton