生存之夜
本课属于 Coddy Unity 学习旅程的“打造真正的游戏”单元。第 59 课,共 60 课。
一名幸存者站在一片黑暗的田野里,整晚都有蝙蝠朝他们飞来,每隔几秒就有一只从田野的四个角落之一出现。每只蝙蝠都会径直飞向幸存者,最先抵达的那只会让夜晚结束。顶部的时钟会显示距离黎明还有多少秒:撑到那时,你就赢了。点击“暂停”按钮可以让一切停止。夜晚结束后,点击“再玩一次”即可开始新的一夜。
使用 Move 操作控制幸存者行走的 Player 脚本已经写好了。请编写 GameManager 和 Bat。
挑战
困难开始生存之夜。
GameManager:单例Instance、public enum State { Playing, Paused, Won, Lost }和public State state。- 处于 Playing 状态时,显示倒计时
Dawn in 12,按向上取整的方式倒数nightLength,并每隔spawnEvery秒在随机生成点生成一只蝙蝠。Lose()会将状态设为 Lost。 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 在线编辑器