Главная » Статьи » Space Shooter Unity3D

Взрываем и взрываемся

Теперь сделаем, чтобы при столкновении астероида с шаттлом, шаттл взрывался, а если столкнутся пуля и астероид – они оба взрываются.

Начнем с того, что нужно астероид сделать предметом, на который действует сила тяжести, трения и другие силы. Выделите астероид и в левом углу Component -> Physics -> Rigidbody.  Дальше у астероида появляется группа свойств Rigidbody, в котором вам нужно отключить гравитацию для данного тела, снимаете галку с Use Gravity. Если вы этого не сделаете, то он будет падать вниз и никогда не столкнется с шаттлом. И в Constraints выделяете все. Дальше нужно взять префаб взрыва, я взял large frames, отсюда Standart Assets -> Particles -> Legacy Particles -> large frames. Настроил его так: Min Size=10, Max Size=15, Min Energy = 10, Max Energy = 15. Убираете в сторонку.

Метод OnCollisionEnter удобен для проверки столкновении, поэтому мы будем пользоваться им. Но перед этим поставьте тэг Finish у астероида, делается так:

И теперь в скрипт SpaceActions:

Объявите public GameObject explosion;

void OnCollisionEnter(Collision hit)

{

if(hit.gameObject.tag == "Finish")

{

GameObject explosionClone = Instantiate(explosion) as GameObject;

explosionClone.transform.position = transform.position;

transform.position = new Vector3(-351.6443f,0,Random.Range(-211.575f, 182.9035f));Destroy(hit.gameObject);

Destroy(explosionClone, 3.0f);                                             

}

}

В объекте шаттла определяете explosion на large frames. Если взрыв работает ненормально, поменяйте его настройки. С астероидом тоже самое, но с небольшими изменениями:

void OnCollisionEnter(Collision collision)

{

if(collision.gameObject.tag == "Bullet")

{

GameObject explosionClone;

explosionClone = Instantiate(explosion, transform.position, transform.rotation) as GameObject;

Destroy(collision.gameObject);

Destroy(explosionClone.gameObject, 0.5f);

transform.position = new Vector3(-351.6443f,-763.0072f,Random.Range(-211.575f, 182.9035f));

}

}

Подставьте свои числа в последней строчке, наверно не надо объяснять, что это за числа такие.

Теперь давайте добавим звук. Скачайте данный аудиофайл и импортируйте его в Юнити. После импорта приаттачте к шаттлу и астероиду, снимите галку с Play on Awake в появившихся свойствах.

И в методы проверки столкновений добавьте эти строки:

audio.Play();

Всё кажется на этом всё. Если что-то непонятно не стесняйтесь спрашивать.

WiFi: беспроводная свобода с компанией WTS. Установка, настройка, поддержка WiFi в Ставрополе и Ставропольском крае.

 

 


Категория: Space Shooter Unity3D | Добавил: Шаке (10.01.2012)
Просмотров: 3106 | Комментарии: 1 | Теги: audio, Collision, oncollisionenter, Unity3d, Tag, play, Explosion
Всего комментариев: 1
1 Gleb  
0
Большое пасибо, очень полезные уроки!! Сейчас бы еще скачать все модельки которые вы выкладывали, там ссылки не рабочие, да и картинки не отображаются, а так вообще очень полезно. Спасибо!!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
/>meta http-equiv=