Пятница, 29 Марта 2024, 10:10

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как удалять клонированные обьекты
Как удалять клонированные обьекты
Vp1591Дата: Воскресенье, 05 Апреля 2020, 23:58 | Сообщение # 1
был не раз
Сейчас нет на сайте
Я делал пули – она вылетает, летит пару секунд и если не встречает противника – уничтожается. Но Destroy() почему то просто отключает их, и не удаляет. Мне бы хотель именно удалять их. Кто знает почему может не работать Destory, и можно ли это починить?
drcrackДата: Понедельник, 06 Апреля 2020, 03:15 | Сообщение # 2
старожил
Сейчас нет на сайте
Убедись что Destroy ты вызываешь именно для gameObject пули, а не для какого-то скрипта на ней
Vp1591Дата: Понедельник, 06 Апреля 2020, 23:25 | Сообщение # 3
был не раз
Сейчас нет на сайте
Я вызываю Destroy именно для gameObject, да и к тому же я тестировал тот же скрипт но без Destroy и пуля не выключалась.
drcrackДата: Понедельник, 06 Апреля 2020, 23:57 | Сообщение # 4
старожил
Сейчас нет на сайте
Покажи скрипт
ShortKedrДата: Вторник, 07 Апреля 2020, 03:35 | Сообщение # 5
Renword Studio
Сейчас нет на сайте
надеюсь не gameObject.Destroy(каво-то там), а Destroy(gameObject)

Вообще можешь при создании пуль делать так
Код

// Kills the game object in 5 seconds after loading the object
Destroy (bulletObj, 5);


Ещё покажи скрипт


Сообщение отредактировал ShortKedr - Вторник, 07 Апреля 2020, 03:42
drcrackДата: Вторник, 07 Апреля 2020, 03:48 | Сообщение # 6
старожил
Сейчас нет на сайте
Цитата
надеюсь не gameObject.Destroy(каво-то там)

оно так не запустится, Destroy это ж статический метод класса Object, да и версии без параметров у него нету


Сообщение отредактировал drcrack - Вторник, 07 Апреля 2020, 03:49
ShortKedrДата: Вторник, 07 Апреля 2020, 08:18 | Сообщение # 7
Renword Studio
Сейчас нет на сайте
Цитата drcrack ()
оно так не запустится, Destroy это ж статический метод класса Object, да и версии без параметров у него нету

Ну не без параметров, а статик можно вызывать если объект экземпляр этого класса
Destroy везде статик, видишь, он вызывается везде, унаследован от родоначальника Object dll Unity


Сообщение отредактировал ShortKedr - Вторник, 07 Апреля 2020, 08:22
drcrackДата: Вторник, 07 Апреля 2020, 08:56 | Сообщение # 8
старожил
Сейчас нет на сайте
Цитата
а статик можно вызывать если объект экземпляр этого класса

Object.Destroy(...) — можно
GameObject.Destroy(...) — можно (или через любого другого наследника)
просто Destroy(...) из метода наследника Object — можно
gameObject.Destroy(...) — нельзя


Сообщение отредактировал drcrack - Вторник, 07 Апреля 2020, 08:58
ShortKedrДата: Вторник, 07 Апреля 2020, 09:33 | Сообщение # 9
Renword Studio
Сейчас нет на сайте
Цитата drcrack ()
gameObject.Destroy(...) — нельзя

Да верно, тупанул я, бывает в общем-то...


Сообщение отредактировал ShortKedr - Вторник, 07 Апреля 2020, 10:03
Vp1591Дата: Среда, 08 Апреля 2020, 22:21 | Сообщение # 10
был не раз
Сейчас нет на сайте
Я вызываю Destroy(gameObject);
Я пробовал ставить время но оно отключает пулю мгновенно хоть с таймером хоть без. Главная проблема в том то что объект ОТКЛЮЧАЕТЬСЯ, а не УНИЧТОЖАЕТЬСЯ, хотя в коде пули кроме Destroy и передвижения ничего нету

Добавлено (08 Апреля 2020, 22:58)
---------------------------------------------
Я хз как показывать скрипт

Добавлено (08 Апреля 2020, 23:02)
---------------------------------------------
А и ещё, проблема эта возникает именно с клонированные и объектами. Оригинальные объекты оно спокойно удаляет.

drcrackДата: Четверг, 09 Апреля 2020, 00:02 | Сообщение # 11
старожил
Сейчас нет на сайте
Цитата
хотя в коде пули кроме Destroy и передвижения ничего нету

значит проблема в другом скрипте
но мы тебе никак не поможем пока ты не сообразишь как показать код <_<
Vp1591Дата: Четверг, 09 Апреля 2020, 18:53 | Сообщение # 12
был не раз
Сейчас нет на сайте
{
public float MoveX = 0.01f;
void Start()
{
Destroy(gameObject);
}
void Update()
{
transform.position = new Vector3(transform.position.x + MoveX, transform.position.y, transform.position.z);
MoveX = MoveX - 0.01f;
}
}
Зашел с компа, вот код.
ShortKedrДата: Четверг, 09 Апреля 2020, 18:57 | Сообщение # 13
Renword Studio
Сейчас нет на сайте
Цитата Vp1591 ()
void Start() {
Destroy(gameObject);
}


Ты уверен, что удалять пулю после её инициализации, это то что нужно? И код ли пули это?
Ну конкретно этот код ничего не отключает. Скорее всего проблема в другом месте

Добавлено (09 Апреля 2020, 18:59)
---------------------------------------------
Если не срабатывает Start и удаление в нём, а просто отключаются клоны, значит кто-то их отключает и до этого события не доходит. Скорее всего это скрипт с приоритетом обработки событий выше, чем у твоего. Стоит проверить другие источники проблемы


Сообщение отредактировал ShortKedr - Четверг, 09 Апреля 2020, 19:00
Vp1591Дата: Четверг, 09 Апреля 2020, 19:12 | Сообщение # 14
был не раз
Сейчас нет на сайте
Я удалял пулю сразу после инициализации для того чтобы проверить является ли проблема в таймере. С таймером оно все равно отключает ее вместо уничтожения. А насчёт другого объекта – нет, так как я пробовал удалять строку с Destroy и она спокойно себе летела.
ShortKedrДата: Четверг, 09 Апреля 2020, 19:52 | Сообщение # 15
Renword Studio
Сейчас нет на сайте
Цитата Vp1591 ()
Я удалял пулю сразу после инициализации для того чтобы проверить является ли проблема в таймере. С таймером оно все равно отключает ее вместо уничтожения. А насчёт другого объекта – нет, так как я пробовал удалять строку с Destroy и она спокойно себе летела.

Подробные скрины в студию, если не сложно. Объекта пули, списка объектов и всего что считаешь ещё нужным


Сообщение отредактировал ShortKedr - Четверг, 09 Апреля 2020, 19:56
drcrackДата: Пятница, 10 Апреля 2020, 04:14 | Сообщение # 16
старожил
Сейчас нет на сайте
Ну ты продолжай код постить по 10 строчек раз в неделю, глядишь к лету разберемся
ShortKedrДата: Пятница, 10 Апреля 2020, 09:21 | Сообщение # 17
Renword Studio
Сейчас нет на сайте
Цитата drcrack ()
Ну ты продолжай код постить по 10 строчек раз в неделю, глядишь к лету разберемся

Действительно =)


Сообщение отредактировал ShortKedr - Пятница, 10 Апреля 2020, 09:23
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как удалять клонированные обьекты
  • Страница 1 из 1
  • 1
Поиск:

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