Давайте по взрываем!
В данной статейке я бы хотел заострить внимание на готовых материалах, которые можно скачать с официального сайта unity3d.com, и в частности пакету Detonator. Но так как времени у меня не так много, то статья будет краткой, и лучше будем задавать вопросы о том, кому что не понятно.
Доступные ресурсы можно скачать по адресу:
http://unity3d.com/support/resources/
Пакет Detonator:
http://unity3d.com/support/resources...sion-framework
Итак, приступим.
1. Создаем новый проект, так как я рассказывал в прошлой статье.
2. Скачиваем пакет Detonator по приведенной выше ссылке и импортируем в проект. Для этого в меню «Assets» выбираем пункт «Import Package…». Оставляем все галочки и жмем на кнопку «Import»
3. Структура папок проекта должна получиться следующая:
Я нарочно раскрыл папку «Prefab-examples», т.к. мы будем далее ей пользоваться.
4. Создадим сцену из кубиков, так чтобы можно было что-то по взрывать. Не забываем добавлять компонент Rigid Body кубикам, так чтобы они учувствовали в симуляции физики, а не были просто препятствием. У меня получилось примерно так:
Как создать кубики, добавить им компонент Rigid Body – читайте в предыдущей статье.
5. Создадим папку Scripts и в ней создадим новый скрипт C# с названием DetonateIt. И следующим содержанием:
using UnityEngine;
using System.Collections;
public class DetonateIt : MonoBehaviour
{
// Данное поле будет содержать экземпляр объекта-взрыва
// который мы будем посдтавлять на место клика мышкой
public GameObject explosion;
// Кроме функции Update нам ничего не понадобится, так что
// оставим только ее
public void Update()
{
// По нажатию кнопки R будем восстанавливать сцену, для новых взрывов
if (Input.GetKeyDown(KeyCode.R))
{
// у нас всего одна сцена, имеющая индекс "0"
Application.LoadLevel(0);
}
// Щелкаем мышкой
if (Input.GetMouseButtonDown(0))
{
// Используя свойство camera данного компонента мы получим камеру,
// привязанную к объекту
// С помощью камеры спроецируем луч из точки на экране, в которой находится мышька
Ray mouseRay = camera.ScreenPointToRay(Input.mousePosition);
// переменная, которая будет содержать результат щелчка мышью по сцене
RaycastHit hit;
// на основе полученного луча проверяем его пересечение с объектами в сцене,
// содержащими компонент Collider (кубики содержат по умолчанию Box Collider)
if (Physics.Raycast(mouseRay, out hit))
{
// если попали в геометрию, то создадим в этом месте взрыв
Instantiate(explosion, hit.point, Quaternion.identity);
}
}
}
}
6. Возвращаемся в Unity и назначаем созданный компонент камере.
7. Как видно из скриншота, у компонента есть поле Explosion, на которое мы должны перетащить один их подготовленных префабов взрывов, которые я показывал выше.
8. Назначаем любой взрыв, запускаем и наслаждаемся )).
Результат можно посмотреть по этой ссылке.
ps: если вы хотите построить проект, то вам сначала нужно сохранить текущую сцену, потом при выборе File->Build Settings... добавить ее в список построения под индексом 0 и нажать кнопку Build? выбрав нужную платформу.