Суббота, 27 Апреля 2024, 22:49

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Уничтожение обьекта?
Уничтожение обьекта?
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
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Уничтожение обьекта?
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг