おさらい:二段ジャンプ
CoddyのUnityジャーニー「本格的なゲームを作る」セクションの一部。レッスン 42/56。
チャレンジ
中級Hero.cs にプラットフォーマーのヒーローの移動処理を書きます。Hero には CharacterController が設定されています。Inspector で speed (5)、gravity (-25)、jumpHeight (2)、airJumpHeight (1.28) を設定します。
- 矢印キー(または WASD)をraw axesで読み取り、
controller.Moveを使って、x 軸と z 軸方向に毎秒speedユニットの速さでヒーローを移動させます。 - 重力は手動で処理します。垂直速度は毎秒
gravityずつ増加し、ヒーローが地面にいて落下中の場合は -2 に設定します。 - 地上でスペースキーを押すと、ちょうど
jumpHeightの高さまでジャンプします。 - 空中でスペースキーを押すと、もう一度ジャンプし、押した地点から
airJumpHeightだけ上昇します。空中にいる間にできるエアジャンプは1回だけです。着地すると再び使えるようになります。
Play を押し、二段ジャンプで足場に乗ってから、Check を押します。
自分で試してみよう
using UnityEngine;
public class Hero : MonoBehaviour
{
public float speed = 5f;
public float gravity = -25f;
public float jumpHeight = 2f;
public float airJumpHeight = 1.28f;
CharacterController controller;
void Start()
{
controller = GetComponent<CharacterController>();
}
void Update()
{
}
}