private void Update() { Ray ray = new Ray(transform.position, transform.forward); RaycastHit raycastHit; if (Physics.Raycast(ray, out raycastHit, interactDistance, layerMask)) { // если рука не отображается if (!handImage.gameObject.activeSelf) { // показать картинку handImage.gameObject.SetActive(true); } Debug.Log("Ray hit object: " + raycastHit.transform.name); // если нажата клавиша Е if (Input.GetKeyDown(KeyCode.E)) { // если смотрю на батарейки if (raycastHit.transform.tag == "Battery") { // пополнить заряд фонарика flashLight.AddEnergy(); // уничтожить батарейки Destroy(raycastHit.transform.gameObject); } if (raycastHit.transform.tag == "Paper") { paperPanel.SetActive(true); playerController.enabled = false; } if (raycastHit.transform.tag == "Key") { Key key = raycastHit.transform.GetComponent <Key>(); if (key != null) { key.PickUp(); } } if (raycastHit.transform.tag == "Door") { Door door = raycastHit.transform.GetComponent <Door>(); if (door != null) { door.ChangeDoorState(); } } if (Input.GetKeyDown(KeyCode.Escape)) { paperPanel.SetActive(false); playerController.enabled = true; } } else { handImage.gameObject.SetActive(false); } } }
void Update() { Ray ray = new Ray(cameraPosition.position, cameraPosition.forward); RaycastHit hit; if (Physics.Raycast(ray, out hit, interactDistance)) { if (Input.GetKeyDown(KeyCode.E)) { if (hit.collider.tag == "Battery") { flashLight.AddEnergy(1.5f); Destroy(hit.collider.gameObject); } } } }
private void Update() { // origin - откуда исходит луч, direction - направление Ray ray = new Ray(cameraPosition.position, cameraPosition.forward); RaycastHit hit; if (Physics.Raycast(ray, out hit, interactDistance, layerMask)) { interactImage.gameObject.SetActive(true); // если нажата клавиша E if (Input.GetKeyDown(KeyCode.E)) { // если попали в объект с tag == Battery if (hit.collider.tag == "Battery") { // добавить энергии flashLight.AddEnergy(1.5f); // уничтожаем объект Destroy(hit.collider.gameObject); } else if (hit.collider.tag == "Candle") { // получаем скрипт Candle у свечи var candle = hit.collider.GetComponent <Candle>(); candle.SetActive(); } else if (hit.collider.tag == "Door") { door.Unlock(); door.Open(); } else if (hit.collider.tag == "Key") { door.PickUp(); Destroy(hit.collider.gameObject); } } } else { interactImage.gameObject.SetActive(false); } }
void Update() { Ray ray = new Ray(cameraPosition.position, cameraPosition.forward); RaycastHit hit; if (Physics.Raycast(ray, out hit, interactDistance, layerMask)) { interactImage.gameObject.SetActive(true); if (Input.GetKeyDown(KeyCode.E)) { if (hit.collider.tag == "Battery") { flashLight.AddEnergy(1.5f); Destroy(hit.collider.gameObject); } else if (hit.collider.tag == "Candle") { var candle = hit.collider.GetComponent <Candle>(); candle.SetActive(); } else if (hit.collider.tag == "Key") { haveKey = true; Destroy(hit.collider.gameObject); } else if (hit.collider.tag == "Door") { var door = hit.collider.GetComponentInParent <DoorOpen>(); if (haveKey) { door.Unlock(); } door.Open(); } } } else { interactImage.gameObject.SetActive(false); } }
private void Update() { Ray ray = new Ray(transform.position, transform.forward); RaycastHit raycastHit; if (Physics.Raycast(ray, out raycastHit, interactDistance, layerMask)) { // если рука не отображается if (!handImage.gameObject.activeSelf) { // показать картинку handImage.gameObject.SetActive(true); } Debug.Log("Ray hit object: " + raycastHit.transform.name); // если нажата клавиша Е if (Input.GetKeyDown(KeyCode.E)) { // если смотрю на батарейки if (raycastHit.transform.tag == "Battery") { // пополнить заряд фонарика flashLight.AddEnergy(); // уничтожить батарейки Destroy(raycastHit.transform.gameObject); } if (raycastHit.transform.tag == "Paper") { //Включаем панель paperPanel.SetActive(true); //Отключаем игрока playerController.enabled = false; } //если смотрю на ключ if (raycastHit.transform.tag == "Key") { //вызов метода подбора в ключе Key key = raycastHit.transform.GetComponent <Key>(); if (key != null) { key.PickUp(); } } if (raycastHit.transform.tag == "Candle") { // получить объект свечу Candle candle = raycastHit.transform.GetComponent <Candle>(); if (candle != null) { // зажечь/потушить свечу candle.ChangeLight(); } } if (raycastHit.transform.tag == "Door") { if (hasKey == false) { //проиграть звук закрытой двери // AudioSource Door door = raycastHit.transform.GetComponent <Door>(); if (door != null) { door.ChangeDoorState(); } } } if (raycastHit.transform.tag == "FirstAid") { gameObject.GetComponentInParent <HealthHero>().Heal(); Destroy(raycastHit.transform.gameObject); } if (raycastHit.transform.tag == "WoodCodeBox") { gameObject.GetComponentsInParent <RigidbodyFirstPersonController>()[0].enabled = false; woodBoxPanel.SetActive(true); woodBox = raycastHit.transform.gameObject; } } else if (Input.GetKeyDown(KeyCode.Escape)) { if (raycastHit.transform.tag == "Paper" && isReading) { gameObject.GetComponentsInParent <RigidbodyFirstPersonController>()[0].enabled = true; isReading = false; paperPanel.SetActive(false); } else if (raycastHit.transform.tag == "WoodCodeBox") { woodBoxPanel.SetActive(false); gameObject.GetComponentsInParent <RigidbodyFirstPersonController>()[0].enabled = true; } } } else { //выключаем картинку handImage.gameObject.SetActive(false); } }
private void Update() { Ray ray = new Ray(transform.position, transform.forward); RaycastHit raycastHit; if (Physics.Raycast(ray, out raycastHit, interactDistance, layerMask)) { // если рука не отображается if (!handImage.gameObject.activeSelf) { // показать картинку handImage.gameObject.SetActive(true); } // Debug.Log("Ray hit object: " + raycastHit.transform.name); // если нажата клавиша Е if (Input.GetKeyDown(KeyCode.E)) { // если смотрю на батарейки if (raycastHit.transform.tag == "Battery") { // пополнить заряд фонарика flashLight.AddEnergy(); // уничтожить батарейки Destroy(raycastHit.transform.gameObject); } // если смотрю на записку if (raycastHit.transform.tag == "Paper") { // включаем панель paperCount++; paperReadPanel.gameObject.SetActive(true); paperReadPanel.PaperText(paperCount); Destroy(raycastHit.transform.gameObject); // отключаем игрока //playerController.enabled = false; } // если смотрю на ключ if (raycastHit.transform.tag == "Key") { // удаляем ключ Destroy(raycastHit.transform.gameObject); // обновляем переменную hasKey = true; } // если смотрю на дверь if (raycastHit.transform.tag == "Door") { if (paperCount == 3) { openDoor.ChangeOpenDoor(); Debug.Log("Вы открыли дверь!"); } else { Debug.Log("Прочтите еще записки!"); } //if(hasKey == false){ // // проиграть звук закрытой двери // Debug.Log("Дверь закрыта"); //}else{ // // открыть дверь // Debug.Log("Дверь открыта"); // // проиграть звук открытия двери //} } if (raycastHit.transform.tag == "CandleLight") { light.EnableLight(); } } if (Input.GetKeyDown(KeyCode.Z)) { // выключаем панель paperReadPanel.gameObject.SetActive(false); // включаем игрока playerController.enabled = true; } } else { //выключаем картинку handImage.gameObject.SetActive(false); } }