Уничтожение обьекта?
|
|
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 |
|
| |