Улучшенный скрипт выбора юнитов [RTS]

Улучшенный скрипт выбора и выделения юнитов, для игр типа RTS. Кроме привычной рамки, которую мы рисуем мышкой в стратегиях, чтобы выбрать юнитов. В современных играх, всё чаще встречаются и другие полезные функции. Выбор юнитов по двойному клику, например, если мы делаем двойной клик по танку, определенного типа, то автоматов выделяются все похожие юниты, это очень удобно. Еще одна важная фишка, это если удерживать клавишу, например, левый Ctrl и одновременно выбирать юинтов, хоть рамкой, хоть по одному, суть в том, что при этом юниты добавляются. Это похоже на то, как выбирать файлы в Windows.


Стоит отметить, что в этой версии проекта, в отличии от предыдущих, убраны иконки и функции создания иконок. То есть, скрипт создает массив выбранный юнитов, с которым можно делать что угодно, на свое усмотрение.

С начала мы создаем список типов:

using UnityEngine;
using System.Collections;

public enum UnitType {

	Unit_01,
	Unit_02,
	Unit_03
}
Танки, солдаты, КСМ и тому подобное.

Теперь класс, который вешаем на самого юнита, UnitComponent. Указываем тип данного юнита и его маркер.



Далее, сам скрипт выделения и выбора юнитов UnitSelect.
Работает как с 2D так и с 3D проектами. Выбор юнитов по двойному клику разбит на две опции, в первом случае выбираются юниты только в рамках экрана, в другом будут выбраны все доступные на карте. По умолчанию режим добавления включается, если удерживать клавишу "LeftControl", но можно назначит любую другую разумеется. Режим добавления работает с любым методом выбора юнитов: рамкой, кликом или двойным кликом.

Чтобы получить общие число юнитов на карте:

int count = UnitSelect.unitCount;

Обработка выбранных юнитов:

for(int i = 0; i < UnitSelect.selected.Count; i++)
{
	Debug.Log("делаем что-то с юнитом --> " + UnitSelect.selected[i].gameObject.name);
}

Скачать скрипты:
https://boosty.to/null-code/posts/4863bbd6-92c1-4949-ac4f-da926d412396
Тестировалось на: Unity 2017.4.2
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика