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