Как я делал CandyCrash на Unity3D( Часть 2)

Как я делал CandyCrash на Unity3D( Часть 2)

Использование группировки объектов игры очень помогает при создании логики. Поэтому данный раздел очень важен для дальнейшего описания всего алгоритма игры. Хотя можно было его и включить в предыдущий раздел. Итак но что сделано то сделано.

У большинства объектов Unity3D есть такой параметр как tag именно он позволит нам понимать на какой именно тип кубика пользователь нажал мышкой. Итак для того чтобы присвоить теги каждому элементу нужно сначала создать их. Их будет 8 штук и они будут называться точно так же как номера элементов массива. В дальнейшем Вы поймете зачем так упрощать.

1) создаем теги. Для этого выбираем наш prefab в списке ресурсов и смотрим на окно его свойств.

Видим в окне свойств небольшое выпадающее меню именно в него мы и добавим список наших тегов. К сожалению как это сделать из кода я не знаю. Поэтому щелкаем по данному списку и нажимаем на пункт Add tag (добавить тэг).

В Unity3d параметр в tag есть встроенный набор а так же можно добавлять свои уникальные значения для этого в открывшемся редакторе жмем на клавишу + и добавляем в поля цифры от 0 до 8

Если ничего нет то возвращаемся обратно и повторяем попытку с кнопкой плюс. Если все хорошо то продолжаем. Теперь когда теги существуют мы можем их присваивать нашим игровым объектам. Для этого снова заходим в наш скрипт Change созданный в предыдущем примере. И дополняем функцию Update присвоением значения tag.

Дополняем функцию Update

/*при обновлении экрана задаем картинку по номеру из списка*/

Sprite.sprite = ImgList [IndexImg];

/*задаем уникальный tag для данного типа картинки*/

Теперь при запуске нашего уровня разные цвета будут иметь разные уникальные значения параметра tag. И нам не нужно будет выбирать все элементы из сцены и проверять. Мы будем просто выбирать элементы той группы на которую кликнул игрок и в них смотреть нашу логику. Но об этом чуть позже.

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

Для всех белых будет tag 1Для всех синих будет tag 6

Таким образом мы будем знать какой цвет выбрал игрок а дальше дело техники посчитать и убрать все ненужное.

05) Создание карты

Вот и настала пора создать сложнейшую функцию которая будет генерировать наше замечательное поле с кубиками в которые игрок будет играть. Для этого в окошке Hierarchy удаляем все элементы списка кроме Main Camera

Выделяем и удаляем

Итак нужно знать, что при старте нашего уровня будет создаваться камера. Именно при ее создании будем генерировать поле из наших игровых блоков. Для этого создаем новый скрипт на C# я назову его CreateMap

Создаем и называем CreateMap

Далее двойным щелчком откроем код CreateMap. Он откроется в том редакторе который настроен в Unity3D. У меня MonoDevelop не работают горячие клавиши поэтому я перенастроил Unity на Visual Studio в параметрах.

Объявим 2 переменные которые будут обозначать ширину и высоту поля в квадратах.

Переменные определяющие размеры карт

public class CreateMap : MonoBehaviour

📎📎📎📎📎📎📎📎📎📎