using UnityEngine; // Подключаем библиотеку Unity
public class PickupItem : MonoBehaviour // Создаём класс подбора предметов
{
public Camera playerCamera; // Ссылка на камеру игрока
public float pickupDistance = 3f; // Максимальная дистанция подбора
public int collectedCount = 0; // Количество собранных предметов
// Сообщество Unity | Сообщество
void Update() // Метод вызывается каждый кадр
{
// Создаём луч из позиции камеры
// Направление луча совпадает с направлением взгляда камеры
Ray ray = new Ray(
playerCamera.transform.position,
playerCamera.transform.forward
);
// Рисуем луч в окне Scene для отладки
// Указываем направление на длину луча
Debug.DrawRay(
ray.origin,
ray.direction * pickupDistance,
Color.green
);
// Проверяем, нажал ли игрок клавишу E
if (Input.GetKeyDown(KeyCode.E))
{
// Создаём переменную для хранения информации о попадании
RaycastHit hit;
// Выпускаем луч и проверяем, попал ли он в Collider
if (Physics.Raycast(ray, out hit, pickupDistance))
{
// Проверяем, есть ли у объекта тег "Interactable"
if (hit.collider.CompareTag("Interactable"))
{
// Удаляем подобранный объект
Destroy(hit.collider.gameObject);
// Увеличиваем количество собранных предметов
collectedCount++;
// Выводим количество собранных предметов в Console
Debug.Log("Собрано предметов: " + collectedCount);
}
}
}
}
}