NickNovicov, как уже отметил Homo Ludens, Destroy и Instantiate ресурсоёмкий процесс, да и тем более создавать и прикреплять класс к патронам в сцене является плохой затеей. Стоит только создать миниган с темпом стрельбы ≈66 патронов в секунду и вы убьете всю производительность игры. Поэтому лучше создать Object Pool.
(О том как создать простой Object Pool было сказано -> https://habr.com/ru/post/275091/).
Ну... А как выход могу предложить "поглощать" патроны с помощью класса (Скрипта) прикрепленного к самому триггеру, он будет проверять, находится ли патрон внутри, если да, то он будет возвращать его в пул. Чтобы точно знать, патрон ли это внутри, лучше создать отдельный слой для патронов.
void OnTriggerEnter(Collider col) {
if (col.gameObject.layer == "_BULLETS") {
/* Ваш код по возвращению игрового объекта в пул */
}
}
freeExec, насчёт этого я знаю, забыл упомянуть что собираю игру под Windows (Сейчас подкорректирую вопрос), и библиотеки скомпилированы под неё. Но опыт с android был. Все библиотеки были в соответствующих подпапках, но код всё равно не работал над IL2CPP, только над Mono бэкендом. Ну... Если никак, то никак - буду использовать костыль и запускать отдельный процесс с передачей необходимых данных по сокету. Спасибо за ответ!
(О том как создать простой Object Pool было сказано -> https://habr.com/ru/post/275091/).
Ну... А как выход могу предложить "поглощать" патроны с помощью класса (Скрипта) прикрепленного к самому триггеру, он будет проверять, находится ли патрон внутри, если да, то он будет возвращать его в пул. Чтобы точно знать, патрон ли это внутри, лучше создать отдельный слой для патронов.