Ejemplo n.º 1
0
    private void Update()
    {
        //Переключаемся в режим сбора предметов нажатием на Q (если, конечно, мы не работаем с вводом текста на ноутбуке)
        if (Input.GetKeyDown(KeyCode.Q) && !mode.isLaptopModeActive)
        {
            mode.ClickMode();
        }

        //Если игрок кликнул мышкой в режиме сбора предметов, запускаем проверку на столкновение с сюжетным предметом
        if (Input.GetMouseButtonDown(0))
        {
            Ray        ray = _camera.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit, 2))
            {
                //Смотрим, было ли столкновение луча с монтировкой (помечена тегом "Damage")
                if (hit.collider.name == crowbarName)
                {
                    hit.collider.gameObject.SetActive(false);
                    crowbar.SetActive(true);
                }
                //Смотрим, было ли столкновение луча с крышкой сейфа (помечена тегом "Cap") и выполнено л первое задание
                else if (hit.collider.tag == seifName && mode.questTasks[0])
                {
                    //Очень сложное обращение - только ради того, чтобы не искать кота через Find
                    mode.cat.GetComponent <CatBehavior>().CatBack();
                    mode.SeifLockMode();
                }
                //Смотрим, было ли столкновение луча с дверью
                else if (hit.collider.name == doorName)
                {
                    mode.DoorLockMode();
                }
                //Смотрим, было ли столкновение луча с ноутбуком (если было, то берём ноутбук в руки - включаем уже при отдельном клике на кнопку)
                else if (hit.collider.name == laptopName && !mode.isLaptopModeActive)
                {
                    mode.LaptopMode();
                }
                //Включаем ноутбук при нажатии на соответствующую кнопку
                else if (hit.collider.name == laptopButtonName)
                {
                    mode.LaptopButtonAnim.Play("LaptopButtonAnim");
                    mode.LaptopOn();
                    messagePanel.SetActive(true);
                    messageText.text = "Чтобы положить ноутбук на стол, нажмите TAB";
                    StartCoroutine(HideMessagePanel());
                }
                //Если луч столкнулся с иконкой текстового документа, то запускаем проверку на двойной клик: (см. дальше)
                else if (hit.collider.name == emailName)
                {
                    mode.TextFileClick();
                }
                //Включаем ТВ при нажатии на соответствующую кнопку
                else if (hit.collider.name == TVButtonName)
                {
                    mode.TVMode();
                }
            }
        }
    }