using UnityEngine; public class Generator : MonoBehaviour { public string requiredItemName = "GasTank"; private bool isFueled = false; void Update() { if (isFueled) return; Inventory inventory = FindObjectOfType(); if (inventory == null) return; var heldItem = inventory.slots[inventory.currentSlot]; if (heldItem != null && heldItem.itemName == requiredItemName && Input.GetMouseButtonDown(0)) { int layerMask = ~LayerMask.GetMask("Player"); // ignore "Player" layer (this is very important to not forget to do in other tasks) Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward); if (Physics.Raycast(ray, out RaycastHit hit, 3f, layerMask)) { if (hit.transform == transform || hit.transform.IsChildOf(transform)) { inventory.slots[inventory.currentSlot] = null; inventory.EquipSlot(inventory.currentSlot); isFueled = true; GetComponent().enabled = false; Debug.Log("Generator refueled!"); } } } } }