ジャンプする時に、真上だけでなく進行方向に向かって斜めに飛べるように、スクリプトを作成しましょう。
今回の例では、プレーヤーを十字キーで操作できるようにして、移動している方向にむかってジャンプできるようにしています。
前後左右に向かってジャンプ
床オブジェクトとしてPlaneを作成します。
プレーヤーとしてSphereを作成し、リジッドボディを追加します。
オブジェクトの形状によっては、転倒することもあるため、回転を固定しておきましょう。
Sphereを床の上に配置します。
Player.csを作成し、Sphereに追加します。
Player.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 44 45 46 47 48 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { Rigidbody rb; private float speed; private float upForce; private bool isJump; void Start() { speed = 3.0f; upForce = 5.0f; rb = GetComponent<Rigidbody>(); } void Update() { if(!isJump) { float moveX = Input.GetAxisRaw("Horizontal"); float moveZ = Input.GetAxisRaw("Vertical"); rb.velocity = new Vector3(moveX * speed, rb.velocity.y, moveZ * speed); if(Input.GetKeyDown("space")) { rb.velocity = new Vector3(0 ,upForce, 0); } } } void OnCollisionStay(Collision other) { if(other.gameObject.name == "Plane") { isJump = false; } } void OnCollisionExit(Collision other) { if(other.gameObject.name == "Plane") { isJump = true; } } } |
ゲームプレイしてみましょう。
十字キーで移動、スペースキーでジャンプします。
進んでいる方向にむけて斜めにジャンプできるようになります。