Своя Tower Defense на Unity 5. Часть 1.

Tower Defence Уроки

Создание Tower Defense на игровом движке Unity 5.

Начиная с этого урока я буду рассказывать вам, как создать свою игру в стиле Tower Defense на игровом движке Unity 5.

Tower Defense – это жанр игры, в котором игроку необходимо расправится с врагами (ботами), до того как они пересекут определенную точку на карте. Делать это необходимо с помощью строительства башен в определенных местах на карте.

В этом уроке мы подготовим игровую сцену и реализуем движение ботов по определенным точкам (поинтам).

Начнем с подготовки сцены. Создадим новый проект в Unity и добавим несколько новых папок material, resources, scripts и scene. В этих папках мы будем хранить материалы, игровые объекты, скрипты и нашу игровую сцену.

assets

Создание поля.

Для начала нам необходимо создать игровое поле, где будут проходить все основные действия.

Добавим плоскость на сцену с позициями по нулям и любым материалом, переименуем ее в pole.

pole

Далее, для возможности размещения башен на игровом поле необходимо создать платформу.

Добавим куб на сцену с размерами 1, 0.1, 1 и отключим у него возможность отбрасывания теней (Mesh render — Cast Shadows — off).

place

Переименуем куб в TowerPlace и сохраним его в префаб

Теперь продублируем нашу платформу (ctr+D) так, что бы они покрывали все игровое поле

towerplacescene

Переместим все платформы в пустышку (TowerPlace) и у префаба изменим немного размеры для того, что бы было расстояние между платформами.

towerplacescene2

Удалим некоторые объекты для того, чтобы получилась дорожка для движения ботов

towerplacescene3

Добавление Waypoints

Создадим пустой объект на сцене с позициями по нулям и названием WayPoint. Изменим его иконку, что бы он отображался на сцене. Приподнимем его по оси y, ось x и z должны оставаться со значением ноль.

waypoint

Сохраним его в префаб и разместим наши вайпоинты на пустой дорожке, на краях поворота (дублировать CTR+D, перемещать с зажатой клавишей CTR). Перенесем все поинты в пустой объект weapoints.

waypoint2

Spawner

Создадим куб, который будет создавать ботов на сцене. Ставим его в начало пути ботов и убираем у него box collider, назовем его Start

Продублируем этот куб и разместим его в конце пути ботов (можно применить на кубы разные материалы), назовем его End.

startend

Противник

Создайте сферу на сцене и примените к ней любой материал. Добавьте компонент rigidbody. Переместите сферу в префаб и удалите со сцены. Это будет наш противник, который будет двигаться по сцене и которого должна будет уничтожить башня.

enemy

Скрипты

На этом подготовка сцены закончена, переходим к скриптам.

В папке 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 Игру в Unity - Эпизод 5 | Tutorial, Unity, C#Скачать

Как Создать Tower Defense Игру в Unity - Эпизод 5 | Tutorial, Unity, C#
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

startscript

Создадим еще один скрипт  и назовем его 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 и сохранить сцену.

built

Так же, настройте камеру как вам удобно для просмотра сцены

camera

Запустите проект

logo

Как видите, наши объекты начали движение по заданному пути и пропадают в конце , осталось настроить появление башен и удаление противника со сцены. Этим мы и займемся в следующих уроках. Удачных проектов!

Предыдущий урок

Следующий урок

📸 Видео

Создание игры Tower Defense на Unity3D часть 1Скачать

Создание игры Tower Defense на Unity3D часть 1

Сделал игру Защита башни! Создание Tower Defense игры на Unity 1 часть.Скачать

Сделал игру Защита башни! Создание Tower Defense игры на Unity 1 часть.

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

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

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

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

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

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

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

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

Как Создать Tower Defense Игру в Unity - Эпизод 1 | Tutorial, Unity, C#Скачать

Как Создать Tower Defense Игру в Unity - Эпизод 1 | Tutorial, Unity, C#

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

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

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

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

Программирование в Unity 3D. Создаем игру в жанре Tower Defence. Часть 1.Скачать

Программирование в Unity 3D. Создаем игру в жанре Tower Defence. Часть 1.

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

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

Как создать Tower Defense игру #1 Навигация пути[GnomeCode на русском]Скачать

Как создать Tower Defense игру  #1 Навигация пути[GnomeCode на русском]

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

СДЕЛАЛ TOWER DEFENSE НА UNITY | +РАЗБОР КОДА

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

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

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

Creating a Tower Defense Game Part 5 #gamedev #devlog #indiegamedevlog #unity

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

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

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

Как сделать игру в жанре Tower Defense на unity №8
Поделиться или сохранить к себе:
Технологичная помощь
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных, принимаю Политику конфиденциальности и условия Пользовательского соглашения.

  1. 1

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

    Ответить