Menu
CoddyTech

生存之夜

本课属于 Coddy Unity 学习旅程的“打造真正的游戏”单元。第 59 课,共 60 课。

一名幸存者站在一片黑暗的田野里,整晚都有蝙蝠朝他们飞来,每隔几秒就有一只从田野的四个角落之一出现。每只蝙蝠都会径直飞向幸存者,最先抵达的那只会让夜晚结束。顶部的时钟会显示距离黎明还有多少秒:撑到那时,你就赢了。点击“暂停”按钮可以让一切停止。夜晚结束后,点击“再玩一次”即可开始新的一夜。

使用 Move 操作控制幸存者行走的 Player 脚本已经写好了。请编写 GameManager 和 Bat。

challenge icon

挑战

困难

开始生存之夜。

  1. GameManager:单例 Instance、public enum State { Playing, Paused, Won, Lost } 和 public State state。
  2. 处于 Playing 状态时,显示倒计时 Dawn in 12,按向上取整的方式倒数 nightLength,并每隔 spawnEvery 秒在随机生成点生成一只蝙蝠。Lose() 会将状态设为 Lost。
  3. Bat:处于 Playing 状态时,以 speed 的速度飞向玩家,并保持相同高度;进入 reach 范围内时,调用 Lose()。

按“开始”:蝙蝠就会出现。然后按“检查”。

亲手试试

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

public class GameManager : MonoBehaviour
{
    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;
}

打造真正的游戏中的所有课

自己练习: Unity 在线编辑器