Загрузка данных


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);
                }
            }
        }
    }
}