| Уничтожение обьекта? | 
|  | 
| 
| Artemoid | Дата: Понедельник, 22 Июня 2015, 11:56 | Сообщение # 1 |  | частый гость Сейчас нет на сайте | Всем привет! Кто может написать/помочь написать скрипт уничтожения обьекта при соприкосновении с любым другим обьектом? Я намучался, но так ничего нормально и не работает :/ |  |  |  |  | 
| 
| Anim | Дата: Понедельник, 22 Июня 2015, 14:58 | Сообщение # 2 |  |   постоянный участник Сейчас нет на сайте | На объекте который уничтожаем должен быть компонент коллайдер и этот скрипт. На объектах, с которыми он будет сталкиваться, тоже должны быть коллайдеры.
 Либо на объектах столкновения, либо на нашем объекте должен быть компонент ригидБоди.
 
 
 Код using UnityEngine; using System.Collections;
 
 public class Destroy : MonoBehaviour {
 
 void OnCollisionEnter(Collision collision) {
 Destroy (gameObject);
 }
 }
 примерно то же самое можно сделать если поставить галочку "триггер" в настройках коллайдера. а в скрипте использовать void OnTriggerEnter(Trigger trigger)
 
 всем бобра!
 |  |  |  |  | 
| 
| Artemoid | Дата: Четверг, 25 Июня 2015, 21:25 | Сообщение # 3 |  | частый гость Сейчас нет на сайте | Цитата Anim (  )  примерно то же самое можно сделать если поставить галочку "триггер" в настройках коллайдера. а в скрипте использовать void OnTriggerEnter(Trigger trigger)
 Хорошо...
 Ещё вопросик: у меня есть лазер, на котором стоит скрипт тупо движения вперёд. Надо чтобы исчезал при соприкосновении с чем-либо.
 Вот что я написал:
 
 Код public float TimerDown = 0f; bool TimerEn = true;
 // Use this for initialization
 void Start () {
 }
 
 // Update is called once per frame
 void Update () {
 
 if (TimerDown > 0) {
 TimerDown -= Time.deltaTime;
 }
 if (TimerDown < 0) {
 TimerDown = 0;
 }
 /*if (TimerEn && TimerDown == 0) {
 TimerDown = Timer;
 TimerEn = false;
 }*/
 
 }
 
 void OnTriggerEnter(Collider collision) {
 if (TimerDown <= 0) {
 Destroy (gameObject);
 }
 }
 
Почему не работает?
 |  |  |  |  | 
| 
| seaman | Дата: Четверг, 25 Июня 2015, 23:42 | Сообщение # 4 |  | старожил Сейчас нет на сайте | Ригидбоди есть на чем то? |  |  |  |  | 
| 
| beril | Дата: Пятница, 26 Июня 2015, 18:54 | Сообщение # 5 |  |   Я не ленивый, я — энергосберегающий Сейчас нет на сайте | Цитата Artemoid (  ) у меня есть лазер, на котором стоит скрипт тупо движения вперёд. Надо чтобы исчезал при соприкосновении с чем-либо. Тут тебе надо Physics.Raycast если речь идет о стрельбе с лазера.
 Посмотри это
 
 
   
   Накодил? Убери за собой!
 Инвентарь в Unity(UI)
 Инвентарь в Unity(GUI)
 |  |  |  |  | 
| 
| Artemoid | Дата: Вторник, 30 Июня 2015, 22:34 | Сообщение # 6 |  | частый гость Сейчас нет на сайте | Цитата beril (  ) Тут тебе надо Physics.Raycast если речь идет о стрельбе с лазера. Пускать луч для проверки столкновения? Нельзя ли просто через коллайдеры?
 |  |  |  |  | 
| 
| MANMANA | Дата: Вторник, 30 Июня 2015, 22:36 | Сообщение # 7 |  | почти ветеран Сейчас нет на сайте | Цитата Artemoid (  ) Пускать луч для проверки столкновения? Нельзя ли просто через коллайдеры?Тогда длина луча лазера будет ограниченной, или у тебя динамически удлиняющийся коллайдер?
 Или просто оооочень длинный коллайдер лазерного луча?
 
 Можно все
 
 http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
 VKонтакте 3Dbuffer
 
 Последнее:
 
 Новый раздел "Текстуры"
 
 Как запатентовать, защитить техническое решение, игру, идею
 
 
 Сообщение отредактировал MANMANA - Вторник, 30 Июня 2015, 22:37 |  |  |  |  | 
| 
| Artemoid | Дата: Понедельник, 06 Июля 2015, 17:04 | Сообщение # 8 |  | частый гость Сейчас нет на сайте | Цитата MANMANA (  ) Или просто оооочень длинный коллайдер лазерного луча? 
 Можно и так сказать
 
 
 Сообщение отредактировал Artemoid - Понедельник, 06 Июля 2015, 17:10 |  |  |  |  |