示例#1
0
    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);
            }
        }
    }
示例#2
0
    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);
                }
            }
        }
    }
示例#3
0
    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);
        }
    }
示例#4
0
    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);
        }
    }
示例#5
0
    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);
        }
    }
示例#6
0
    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);
        }
    }