Создание Tower Defense на игровом движке Unity 5.
Начиная с этого урока я буду рассказывать вам, как создать свою игру в стиле Tower Defense на игровом движке Unity 5.
Tower Defense – это жанр игры, в котором игроку необходимо расправится с врагами (ботами), до того как они пересекут определенную точку на карте. Делать это необходимо с помощью строительства башен в определенных местах на карте.
В этом уроке мы подготовим игровую сцену и реализуем движение ботов по определенным точкам (поинтам).
Начнем с подготовки сцены. Создадим новый проект в Unity и добавим несколько новых папок material, resources, scripts и scene. В этих папках мы будем хранить материалы, игровые объекты, скрипты и нашу игровую сцену.
Создание поля.
Для начала нам необходимо создать игровое поле, где будут проходить все основные действия.
Добавим плоскость на сцену с позициями по нулям и любым материалом, переименуем ее в pole.
Далее, для возможности размещения башен на игровом поле необходимо создать платформу.
Добавим куб на сцену с размерами 1, 0.1, 1 и отключим у него возможность отбрасывания теней (Mesh render — Cast Shadows — off).
Переименуем куб в TowerPlace и сохраним его в префаб
Теперь продублируем нашу платформу (ctr+D) так, что бы они покрывали все игровое поле
Переместим все платформы в пустышку (TowerPlace) и у префаба изменим немного размеры для того, что бы было расстояние между платформами.
Удалим некоторые объекты для того, чтобы получилась дорожка для движения ботов
Добавление Waypoints
Создадим пустой объект на сцене с позициями по нулям и названием WayPoint. Изменим его иконку, что бы он отображался на сцене. Приподнимем его по оси y, ось x и z должны оставаться со значением ноль.
Сохраним его в префаб и разместим наши вайпоинты на пустой дорожке, на краях поворота (дублировать CTR+D, перемещать с зажатой клавишей CTR). Перенесем все поинты в пустой объект weapoints.
Spawner
Создадим куб, который будет создавать ботов на сцене. Ставим его в начало пути ботов и убираем у него box collider, назовем его Start
Продублируем этот куб и разместим его в конце пути ботов (можно применить на кубы разные материалы), назовем его End.
Противник
Создайте сферу на сцене и примените к ней любой материал. Добавьте компонент rigidbody. Переместите сферу в префаб и удалите со сцены. Это будет наш противник, который будет двигаться по сцене и которого должна будет уничтожить башня.
Скрипты
На этом подготовка сцены закончена, переходим к скриптам.
В папке Scripts создайте новый c# скрипт spawner и переместите его на объект Start. Откройте скрипт и напишите такой код:
using UnityEngine; using System.Collections; public class spawner : MonoBehaviour { public Transform EnemyOrefab;//образец объекта для клонирования public Transform spawnPoint; public float timeBetweerWaves = 5f;// время через которое произойдет создание нового объекта private float countdown = 3f; private int waveIndex = 0; void Update() { if (countdown <= 0f) { StartCoroutine(SpawnWave()); countdown = timeBetweerWaves; } countdown -= Time.deltaTime;// с каждым кадром переменная будет уменьшатся } IEnumerator SpawnWave(){ waveIndex++; for (int i = 0; i < 10; i++) { // после каждого появления объекта к нему будет добавляться еще один объект i = Random.Range(1, 10); SpawnEnemy (); yield return new WaitForSeconds (0.3f); // через определенное время } } void SpawnEnemy () { Instantiate (EnemyOrefab, spawnPoint.position, spawnPoint. rotation); // создание объекта на сцене } }
Этот скрипт будет отвечать за появление противника на сцене, расстояние между объектами и за количество появившихся объектов из начальной точки.
Создадим скрипт Enemy и перенесем его на префаб противника (Enemy), откроем его и напишем такой код:
using UnityEngine; using System.Collections; public class Enemy : MonoBehaviour { public float speed = 10f; //скорость движения private Transform target; private int wavepointIndex =0;void Start (){ target = weapoints.points [0]; // указываем наш массив с поинтами } void Update(){ Vector3 dir = target.position - transform.position; // движение объекта к каждому поинту transform.Translate (dir.normalized * speed * Time.deltaTime, Space.World); if (Vector3.Distance (transform.position, target.position) <= 0.3f) { // если дистанция до точки меньше 0.3 GetNextWaypoint (); } } void GetNextWaypoint () { if (wavepointIndex >= weapoints.points.Length - 1) { // и если значение точки меньше значения точки из скрипта weapoints (который мы создадим позже) Destroy (gameObject); // то удаляем объект return; // делаем повтор } wavepointIndex++; target = weapoints.points [wavepointIndex]; } }Видео:Создание игры Tower Defense на Unity3D часть 1Скачать
Этот скрипт будет отвечать за движение противника по точкам weapoints, скорость движения и удаление со сцены.
На объекте Start укажем в поле spawn object наш префаб Enemy и в поле Spawn point укажем сам Start
Создадим еще один скрипт и назовем его weapoints, перенесем его сразу на объект weapons на сцене (группа наших поинтов). Откроем скрипт и напишем код:
using UnityEngine; using System.Collections; public class weapoints : MonoBehaviour { public static Transform[] points; // здесь просто указывается массив с нашими точками void Awake(){ points = new Transform[transform.childCount]; for (int i = 0; i < points.Length; i++) { points[i]= transform.GetChild (i); } } }
На этом этапе уже можно запустить нашу сцену, не забудьте перед этим добавить сцену в настройки проекта File — Built settings и сохранить сцену.
Так же, настройте камеру как вам удобно для просмотра сцены
Запустите проект
Как видите, наши объекты начали движение по заданному пути и пропадают в конце , осталось настроить появление башен и удаление противника со сцены. Этим мы и займемся в следующих уроках. Удачных проектов!
📹 Видео
Как Создать Tower Defense Игру в Unity - Эпизод 5 | Tutorial, Unity, C#Скачать
Сделал игру Защита башни! Создание Tower Defense игры на Unity 1 часть.Скачать
Как сделать игру tower defense на unity3D 5: БалистикаСкачать
Как Создать Tower Defense Игру в Unity - Эпизод 1 | Tutorial, Unity, C#Скачать
Как сделать игру tower defense на unity3D 1: Игровое полеСкачать
Unity уроки - Создание Tower Defense на Unity часть 1Скачать
Сделал Tower Defense, но ОТ ПЕРВОГО ЛИЦАСкачать
Программирование в Unity 3D. Создаем игру в жанре Tower Defence. Часть 1.Скачать
Первый месяц разработки страшного Tower Defence #programming #gamedevelopment #unrealengineСкачать
Сделал башню лучника и систему строительства в Tower defense на UnityСкачать
2D Tower Defense на Unity #1 - Построение СеткиСкачать
Как создать Tower Defense игру #1 Навигация пути[GnomeCode на русском]Скачать
Как сделать игру в жанре Tower Defense на unity №8Скачать
ПОИГРАЛ во все TOWER DEFENSE игры , чтобы вам не пришлось .Скачать
Создаю онлайн игру на Unreal Engine 5 | Часть 1 - Первые шагиСкачать
Creating a Tower Defense Game Part 5 #gamedev #devlog #indiegamedevlog #unityСкачать
СДЕЛАЛ TOWER DEFENSE НА UNITY | +РАЗБОР КОДАСкачать
Где такого автора дилетанта нашли?