Menu
CoddyTech

밤의 끝

Coddy Unity 여정의 실제 게임 만들기 섹션에 포함된 레슨. 60개 중 60번째.

마지막 도전 과제에서는 상태를 관리하는 매니저, 시간을 멈추는 일시 정지 기능, 두 가지 엔딩, 시간 배율을 초기화하는 다시 시작 기능을 갖춘 게임 전체를 완성합니다.

challenge icon

챌린지

어려움

일시 정지, 두 가지 종료 상태, 다시 시작 기능을 추가하세요.

  1. pauseButton은 Playing과 Paused 사이에서만 전환합니다. Paused 상태에서는 Time.timeScale을 0으로 설정하고 pausePanel을 표시하며, Playing 상태에서는 두 설정을 모두 되돌립니다.
  2. 0초가 되면 밤은 Won 상태가 됩니다. Won 또는 Lost 상태에서는 시간 배율을 0으로 설정하고, endPanel을 표시하며, endText에 You survived the night! 또는 The bats got you를 표시합니다.
  3. restartButton은 시간 배율을 1로 설정하고 장면을 다시 불러옵니다.

‘플레이’를 누르고, 일시 정지하고, 패배한 뒤 다시 플레이하세요. 그런 다음 ‘확인’을 누르세요.

직접 해보기

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;

public class GameManager : MonoBehaviour
{
    public enum State { Playing, Paused, Won, Lost }

    public static GameManager Instance;

    public float nightLength = 15f;
    public float spawnEvery = 2f;
    public GameObject batPrefab;
    public Transform[] spawnPoints;
    public TMP_Text dawnText;
    public Button pauseButton;
    public GameObject pausePanel;
    public GameObject endPanel;
    public TMP_Text endText;
    public Button restartButton;

    public State state;

    private float timeLeft;
    private float spawnTimer;

    void Awake()
    {
        Instance = this;
    }

    void Start()
    {
        state = State.Playing;
        timeLeft = nightLength;
        ShowDawn();
    }

    void Update()
    {
        if (state != State.Playing) return;

        timeLeft -= Time.deltaTime;
        spawnTimer += Time.deltaTime;
        if (spawnTimer >= spawnEvery)
        {
            spawnTimer -= spawnEvery;
            Transform point = spawnPoints[Random.Range(0, spawnPoints.Length)];
            Instantiate(batPrefab, point.position, Quaternion.identity);
        }
        ShowDawn();
    }

    public void Lose()
    {
        if (state != State.Playing) return;
        state = State.Lost;
    }

    void ShowDawn()
    {
        dawnText.text = "Dawn in " + Mathf.CeilToInt(timeLeft);
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

실제 게임 만들기의 모든 레슨

직접 연습해 보세요: Unity 플레이그라운드