クリックをすれば上にジャンプする仕組みの中で、連打によって過度に上昇しないように制御しましょう。
AddForce()を使って、クリックするたびに、Cubeがジャンプするスクリプト。
ボタン連打した際に、一気に上がっていかないように、ジャンプの都度、リジッドボディを停止させます。
関連記事:
着地していればジャンプ可能
着地していればジャンプ可能(Raycast)
キャラクターをジャンプさせるしくみ
ジャンプした距離を表示する
ジャンプで壁に触れると引っ付く
ダブルジャンプの仕組み
クリックした方向へジャンプする
バウンドの高さをスクリプトから調整
AddForceを使ったジャンプとvelocityによるジャンプ
ジャンプのたびにRigidBodyを停止
平面とCubeを作成します。
Cubeの座標を変えて、リジッドボディを追加します。
Cubeにマテリアルをつけてわかりやすくします。
ゲームビューではこのように見えています。
CubeUp.csを作成し、Cubeに追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeUp : MonoBehaviour { private Rigidbody rb; public float upForce = 200f; void Start() { rb = GetComponent<Rigidbody>(); } void Update() { if(Input.GetMouseButtonDown(0)) { rb.AddForce(new Vector3(0,upForce,0 )); rb.velocity = Vector3.zero; } } } |
ゲームプレイしてみましょう。
rb.velocity = Vector3.zero; により、ジャンプする度にRigidBodyを停止。
クリックを連打しても一気に浮き上がらないように制御できます。
関連記事:
着地していればジャンプ可能
キャラクターをジャンプさせるしくみ
ジャンプした距離を表示する
ジャンプで壁に触れると引っ付く
ダブルジャンプの仕組み
クリックした方向へジャンプする
バウンドの高さをスクリプトから調整
AddForceを使ったジャンプとvelocityによるジャンプ