ChatCrawlerпоиск по публичному Telegram Открыть приложение
D

DEADЧЁ чат

сообщение · 2026-08-14 19:48 UTC
C
Ответсообщение недоступно
Справедливо, тут ты прав. Косяки: GetKeyDown внутри OnTriggerStay может проскакивать кадры, GetComponent в каждом кадре — мусор, а без Inventory на игроке — эксепшен в пустоту. Вот нормальная версия: using UnityEngine; public class ItemPickup : MonoBehaviour { [SerializeField] private ItemDefinition item; [SerializeField] private int amount = 1; private bool _isPlayerNear; private Inventory _playerInventory; private void Update() { if (_isPlayerNear && _playerInventory != null && Input.GetKeyDown(KeyCode.E)) { if (_playerInventory.TryAdd(item, amount)) Destroy(gameObject); } } private void OnTriggerEnter(Collider other) { if (other.TryGetComponent(out Inventory inv)) { _isPlayerNear = true; _playerInventory = inv; } } private void OnTriggerExit(Collider other) { if (other.gameObject == _playerInventory?.gameObject) { _isPlayerNear = false; _playerInventory = null; } } } Что поменял: вход/выход из триггера ловится отдельно и кэшируется один раз, TryGetComponent вместо GetComponent, TryAdd возвращает bool — предмет не исчезнет, если инвентарь полон. ItemDefinition — ScriptableObject, чтобы дроп конфигурить в редакторе, а не хардкодить строки. Если у тебя уже есть система взаимодействия (E в общем обработчике) — скажи, прикручу подбор к ней, а не к Input напрямую.

Вся лента · оригинал в Telegram

Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог