Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 13.02.2022
Сообщений: 88

При нажатии кнопки не создается объект из ObectPool

01.04.2023, 19:31. Показов 522. Ответов 3

Студворк — интернет-сервис помощи студентам
Я создал событие в кнопке при нажатии, поместил туда функцию Shoot из кода ниже. При появлении на сцене, объект который должен стрелять пулями инициализирует их, но по нажатию кнопки не делает их активными, но если инициализацию проводить по нажатию на кнопку то тогда делает видимыми, но с каждым разом создает пули их становится все больше и больше.

Почему по нажатию кнопки не делаются активными пули, созданные в Start()?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using UnityEngine;
 
public class PlayerShooter : ObjectPool
{
    [SerializeField] private GameObject _bullet;
 
    private void Start()
    {
        Initialize(_bullet);
    }
 
    public void Shoot()
    {
        //Initialize(_bullet);
 
        if (TryGetObject(out GameObject bullet))
        {
            bullet.SetActive(true);
        }
    }
}
Скрипт ObjectPool:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
 
public class ObjectPool : MonoBehaviour
{
    [SerializeField] private int _amount;
 
    private List<GameObject> _pool = new();
 
    protected void Initialize(GameObject prefab)
    {
        for (int i = 0; i < _amount; i++)
        {
            GameObject spawned = Instantiate(prefab, transform.position, Quaternion.identity);
            spawned.SetActive(false);
 
            _pool.Add(spawned);
        }
    }
 
    protected bool TryGetObject(out GameObject result)
    {
        result = _pool.FirstOrDefault(gameObject => gameObject.activeSelf == false);
 
        return result != null;
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2023, 19:31
Ответы с готовыми решениями:

Написать программу, в которой при нажатии на кнопку динамически создается объект типа TListBox
Помогите пожалуйста очень нужна ваша помощь Написать программу, в которой при нажатии на кнопку динамически создается объект типа...

Как заставить перемещаться объект при нажатии UI кнопки
Есть объект (игрок), который может перемещаться при нажатии кнопок на клавиатуре. Так как пишу игру под андроид смартфоны - создал UI...

При нажатии правой кнопки мыши записать символ красного цвета на экран, при нажатии левой кнопки - заменить на зелёный
При нажатии правой кнопки обеспечить вывод на экран по координатам х и у курсора определенного символа (любого) красного цвета, а при...

3
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
02.04.2023, 00:43
У меня твой код работает. Только смущает new(), возможно так можно, но на юнити 2019 выдает ошибку потому я заменил на обычный new List<GameObject>().
0
1 / 1 / 0
Регистрация: 13.02.2022
Сообщений: 88
02.04.2023, 01:35  [ТС]
Забыл сказать, что я использую Photon, добавил к созданию пули PhotonNetwork.:
C#
1
GameObject spawned = PhotonNetwork.Instantiate(prefab.name, transform.position, Quaternion.identity);
Но все равно при нажатии на кнопку пули не становятся видимыми
0
02.04.2023, 09:46

Не по теме:

Цитата Сообщение от DanProg Посмотреть сообщение
Забыл сказать, что я использую Photon
это мелочи) вот мне бы научиться играть в настольный теннис, но мячик не летит туда, куда я хочу..
.. two hours latter
ах да, забыл сказать, что я живу под водой

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2023, 09:46
Помогаю со студенческими работами здесь

При нажатии правой кнопки мыши записать символ на экран, при нажатии левой кнопки - стереть
При нажатии правой кнопки обеспечить вывод на экран по координатам х и у курсора определенного символа (любого), а при нажатии левой кнопки...

При нажатии на кнопку файл не создается на диске, а он создается только после сворачивания или закрытия окна...
Знакомлюсь с графическим интерфейсом Java Swing. Появилась такая проблема: при нажатии на кнопку должен создаваться файл на диске, а он...

Если внутри функции создается объект с помощью gcnew, он создается один раз или при каждом вызове?
Обработчик по нажатию кнопки Visual C++ 2010 private: System::Void but1_Click(System::Object^ sender, System::EventArgs^ e) { ...

В методе нажатия кнопки, создаю объект Class1 с именем meth, запускаю процедуру - но при нажатии ничего не происходит
Здравствуйте, помогите, пожалуйста разобраться. Для простоты вопроса и элементарного ответа, разберемся на простейшем примере. Есть форма...

При нажатии кнопки ошибка:"В экземпляре объекта не задана ссылка на объект"
Здравствуйте! Делаю я таймер-секундомер, и вот при нажатии кнопки запуска вылетает ошибка: &quot;В экземпляре объекта не задана ссылка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru