웨이브 하나
Coddy의 Unity 게임: 타워 디펜스 코스 레슨. 25개 중 5번째.
Grunt와 Runner는 이제 프리팹이며, Tank와 Boss도 있고, 스포너는 WP0에 있습니다. 웨이브는 몇 가지 숫자로 이루어집니다. 어떤 적인지, 몇 명인지, 간격이 얼마나 되는지 나타냅니다. 따라서 Wave는 [System.Serializable] 클래스이고, 스포너에는 Inspector에서 게임의 8개 웨이브를 채우는 List<Wave>가 있습니다. [System.Serializable]이 없으면 Unity가 목록을 채울 수 없어서 목록은 비어 있게 됩니다.
간격을 두고 적을 생성하는 데는 코루틴을 사용합니다. yield return new WaitForSeconds(...)는 게임을 멈추지 않고 기다립니다. 프리팹은 씬의 웨이포인트를 참조할 수 없으므로, 스포너는 Instantiate 직후 새 적에게 웨이포인트를 전달합니다.
Enemy enemy = Instantiate(wave.enemy, waypoints[0].position, Quaternion.identity);
enemy.waypoints = waypoints;
yield return new WaitForSeconds(wave.spacing);챌린지
쉬움첫 번째 그런트 웨이브를 경로를 따라 보내세요.
Wave.cs에서Wave에[System.Serializable]을 붙이고,public Enemy enemy;,public int count;및public float spacing;을 추가하세요.WaveSpawner에[SerializeField] private List<Wave> waves;와[SerializeField] private Transform[] waypoints;를 추가하세요.Start에서 코루틴을 실행하여 위와 같이waves[0].count명의 적을 생성하세요.
‘플레이’를 누르세요. 그런트 6명이 1.2초 간격으로 행진해 나옵니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
using UnityEngine;
// 나중에 구현: 적들을 웨이브 단위로 경로를 따라 이동시킵니다.
public class WaveSpawner : MonoBehaviour
{
}
Unity 게임: 타워 디펜스의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드