Menu
CoddyTech

チェックポイント

CoddyのUnityジャーニー「本格的なゲームを作る」セクションの一部。レッスン 50/56。

challenge icon

チャレンジ

中級

奈落に落ちても、失うのは少しだけで済み、最初からやり直す必要はありません。これまでのレッスンの内容はすべて残してください。コース上に赤いポールが2本立っています。Checkpoint1とCheckpoint2で、それぞれにトリガーとCheckpointスクリプトが付いています。

Playerでは:

  • Inspectorで設定するフィールドfallY(-5)と、プレイヤーの開始位置を初期値とするリスポーン地点。
  • pointをリスポーン地点に設定するpublicメソッドSetCheckpoint(Vector3 point)。
  • プレイヤーがfallYより下に落ちたら、リスポーン地点に戻し、velocityをクリアします。transform.positionを設定するだけでは不十分です。次のMoveは物理演算が最後に認識した位置から始まり、移動を取り消してしまいます。プレイヤーを移動している間はコントローラーをオフにし(controller.enabled = false)、移動後に再びオンにしてください。

Checkpointでは:

  • プレイヤー(Playerスクリプトが付いたオブジェクト)が初めてトリガーに入ったとき、ポールの位置をプレイヤーのリスポーン地点に設定し、ポールを緑色にし(Color.green)、Checkpoint reachedをログに出力します。
  • もう一度入っても何も起こらないため、以前のチェックポイントによってリスポーン地点が戻ることはありません。

Playを押し、チェックポイントに到達してから奈落に飛び込み、その後Checkを押してください。

自分で試してみよう

using UnityEngine;

public class Checkpoint : MonoBehaviour
{
    // この部分は後のレッスンで実装します。落下した後に戻ってくる場所を変える旗です。
}

本格的なゲームを作るのすべてのレッスン