クリックをすれば上にジャンプする仕組みの中で、連打によって過度に上昇しないように制御しましょう。
AddForce()を使って、クリックするたびに、Cubeがジャンプするスクリプト。
ボタン連打した際に、一気に上がっていかないように、ジャンプの都度、リジッドボディを停止させます。
関連記事:
【Unity C#】着地していればジャンプ可能
【Unity C#】キャラクターをジャンプさせるしくみ
【Unity C#】ジャンプした距離を表示する
【Unity C#】ジャンプで壁に触れると引っ付く
【Unity C#】ダブルジャンプの仕組み
【Unity C#】クリックした方向へジャンプする
ジャンプのたびに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を停止。
クリックを連打しても一気に浮き上がらないように制御できます。
関連記事:
【Unity C#】着地していればジャンプ可能
【Unity C#】キャラクターをジャンプさせるしくみ
【Unity C#】ジャンプした距離を表示する
【Unity C#】ジャンプで壁に触れると引っ付く
【Unity C#】ダブルジャンプの仕組み
【Unity C#】クリックした方向へジャンプする