【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にするとわかりやすく上に飛んでくれるかも
ディスカッション
コメント一覧
まだ、コメントがありません