Menu
CoddyTech

時間内にクリア

CoddyのUnityジャーニー「物理演算とゲームプレイ」セクションの一部。レッスン 31/63。

challenge icon

チャレンジ

中級

タイマーを追加します。前の手順の内容はすべてそのままにして、Ballに追加します。

  • public float timeLimit = 60f;(インスペクターで30に設定)とpublic float timeLeft;を追加します。timeLeftはpublicなのでインスペクターに表示され、カウントダウンを確認できます。
  • ゲーム開始時、timeLeftはtimeLimitになります。0より大きい間は、毎フレーム、そのフレームにかかった時間の分だけ減ります。
  • 0になると、正確に0のままになり、ボールはスコアとともにTime's up! Score: 5を一度だけログに出力します。
  • 時間切れになると、矢印キーを押してもボールは動かなくなります。

Playを押して、30秒で何点取れるか試してから、Checkを押してください。

自分で試してみよう

using UnityEngine;

public class Ball : MonoBehaviour
{
    public float force = 10f;
    public int score;
    private Rigidbody rb;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
    }

    void FixedUpdate()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");
        rb.AddForce(new Vector3(x, 0f, z) * force);
    }

    public void AddScore(int points)
    {
        score += points;
        Debug.Log("Score: " + score);
    }
}

物理演算とゲームプレイのすべてのレッスン