Вот сам код и я не знаю почему он не работает, на камере есть Physics Raycaster и у оружия и у игрока один и тот же слой и у камеры тоже
using UnityEngine;
public class WeaponPickup : MonoBehaviour
{
public GameObject weaponUI;
public GameObject playerWeapon;
public Camera playerCamera;
private bool isWeaponPickedUp = false;
private void Start()
{
weaponUI.SetActive(false);
}
private void Update()
{
if (!isWeaponPickedUp && playerCamera != null)
{
Ray ray = new Ray(playerCamera.transform.position, playerCamera.transform.forward);
RaycastHit hit;
if (Physics.Raycast(ray, out hit) && hit.collider.gameObject == gameObject)
{
weaponUI.SetActive(true);
if (Input.GetKeyDown(KeyCode.E))
{
weaponUI.SetActive(false);
playerWeapon.SetActive(true);
isWeaponPickedUp = true;
}
}
else
{
weaponUI.SetActive(false);
}
}
}
}