Создание 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;
Видео:Создание игры Tower Defense на Unity3D часть 1Скачать
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];
}
}Этот скрипт будет отвечать за движение противника по точкам 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 Игру в Unity - Эпизод 1 | Tutorial, Unity, C#Скачать

Unity уроки - Создание Tower Defense на Unity часть 1Скачать

Как сделать игру tower defense на unity3D 5: БалистикаСкачать

Как сделать игру tower defense на unity3D 1: Игровое полеСкачать

Сделал Tower Defense, но ОТ ПЕРВОГО ЛИЦАСкачать

2D Tower Defense на Unity #1 - Построение СеткиСкачать

Первый месяц разработки страшного Tower Defence #programming #gamedevelopment #unrealengineСкачать

Сделал башню лучника и систему строительства в Tower defense на UnityСкачать

Как создать Tower Defense игру #1 Навигация пути[GnomeCode на русском]Скачать
![Как создать Tower Defense игру #1 Навигация пути[GnomeCode на русском]](https://i.ytimg.com/vi/zao6PgBDhQI/0.jpg)
Программирование в Unity 3D. Создаем игру в жанре Tower Defence. Часть 1.Скачать

Создаю онлайн игру на Unreal Engine 5 | Часть 1 - Первые шагиСкачать

Creating a Tower Defense Game Part 5 #gamedev #devlog #indiegamedevlog #unityСкачать

СДЕЛАЛ TOWER DEFENSE НА UNITY | +РАЗБОР КОДАСкачать

Как сделать игру в жанре Tower Defense на unity №8Скачать

ПОИГРАЛ во все TOWER DEFENSE игры , чтобы вам не пришлось .Скачать











Где такого автора дилетанта нашли?