十字キー操作で、斜めにジャンプできるように、スクリプトを作成してみましょう。
「上キー」を押せば、真上にジャンプ。
「右キーと上キー」を押せば、右方向ヘジャンプして、「左キーと上キー」を押せば、左方向ヘジャンプします。
ジャンプして空中にいる間は、左右に移動できないようにしています。
関連記事:
ジャンプを続けながら壁をのぼる
AddForceを使ったジャンプとvelocityによるジャンプ
ジャンプした距離を表示する
ジャンプしたときのアニメーションをつくる
クリックすればオブジェクトが浮上するしくみ
ジャンプの方向をランダムにする
斜めに向かって飛ぶ
CubeとPlaneを作成します。
Cubeを地上に出してマテリアルカラーを付け、リジッドボディを追加。
回転を固定にチェックを入れます。
ゲームビューではこのように見えています。
CubeJump.csを作成し、Cubeに追加します。
CubeJump.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeJump : MonoBehaviour { Rigidbody rb; private float input; private float speed; private float upForce; public bool isJump; void Start() { speed = 3; upForce = 5; rb = GetComponent<Rigidbody>(); } void Update() { if(!isJump) { input = Input.GetAxisRaw("Horizontal"); rb.velocity = new Vector3(input*speed, rb.velocity.y, 0); if(Input.GetKeyDown("up")) { rb.velocity = new Vector3(rb.velocity.x ,upForce, 0); } } } void OnCollisionStay(Collision other) { isJump = false; } void OnCollisionExit(Collision other) { isJump = true; } } |
ゲームプレイしてみましょう。
上と右を押せば、右斜め上に向けてジャンプ。
上と左を押せば、左斜め上に向けてジャンプします。
ジャンプ中は、左右に移動できないようにしています。
関連記事:
ジャンプを続けながら壁をのぼる
AddForceを使ったジャンプとvelocityによるジャンプ
ジャンプした距離を表示する
ジャンプしたときのアニメーションをつくる
クリックすればオブジェクトが浮上するしくみ
ジャンプの方向をランダムにする