Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        if (!_characterInteraction.HoldingObject)
        {
            if (isFocus)
            {
                //Is player in the radius
                float distance = Vector3.Distance(player.position, transform.position);
                if (distance <= radius && !UIActive)
                {
                    UIActive = true;
                    //UIController.ActivateUiElement(UI_Controller.UI_element_names.Interact);
                }
                //Is The player out of focus
                else if (distance >= radius && UIActive)
                {
                    UIActive = false;
                    //UIController.DeactivateUiElement(UI_Controller.UI_element_names.Interact);
                }

                //player pressed for interaction
                if (Input.GetKey(interactKey) && UIActive && !hasInteracted)
                {
                    hasInteracted = true;
                    inHand        = true;
                    onInteraction.Invoke();
                    UIActive = false;
                    _characterInteraction.HoldingObject = true;
                    UIController.DeactivateUiElement(UI_Controller.UI_element_names.Interact);
                    if (quitInteraction)
                    {
                        UIController.ActivateUiElement(UI_Controller.UI_element_names.PutDown);
                    }
                }
            }
        }
        //Player pressed for quit interaction
        if (inHand && Input.GetKey(putDownKey))
        {
            PutDown();
        }

        if (UIActive && !UIEventCalled)
        {
            activeUI.Invoke();
            UIEventCalled = true;
            UIController.ActivateUiElement(UI_Controller.UI_element_names.Interact);
        }
        else if (!UIActive && UIEventCalled)
        {
            UIEventCalled = false;
            UIController.DeactivateUiElement(UI_Controller.UI_element_names.Interact);
        }
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        if (isFocus && lookedAtLight)
        {
            //Is player in the radius
            float distance = Vector3.Distance(player.position, transform.position);
            if (distance <= radius && logInHand)// &&// !UIActive)
            {
                //UIActive = true;
                UIController.ActivateUiElement(UI_Controller.UI_element_names.Place);
                if (!interactionEventRun && Input.GetKey(interactKey))
                {
                    firePlaceInteraction.Invoke();
                    interactionEventRun = true;
                }
            }
            //Is The player out of focus
            else if (distance >= radius && !interactionEventRun)// && UIActive)
            {
                //UIActive = false;
                UIController.DeactivateUiElement(UI_Controller.UI_element_names.Place);
            }
        }
        float distance2 = Vector3.Distance(player.position, transform.position);

        if (distance2 <= radius && allLogs && !igniteEventRun && interactionEventRun)
        {
            UIController.ActivateUiElement(UI_Controller.UI_element_names.LightFire);
            quitUI = false;
            if (Input.GetKey(igniteKey))
            {
                igniteFireEvent.Invoke();
                _audioManager.FadeSoundIn("Fireplace");
                _winStateManager.CompletedPuzzleObject();
                igniteEventRun = true;
                UIController.DeactivateUiElement(UI_Controller.UI_element_names.LightFire);
            }
        }
        else if (allLogs && distance2 >= radius && !igniteEventRun && !quitUI)
        {
            UIController.DeactivateUiElement(UI_Controller.UI_element_names.LightFire);
            quitUI = true;
        }

        if (numberOfLogs <= numberOfLogsInFire)
        {
            allLogs = true;
        }
    }
 // Update is called once per frame
 void Update()
 {
     if (isFocus)
     {
         //Is player in the radius
         float distance = Vector3.Distance(player.position, transform.position);
         if (distance <= radius && bookInHand)// &&// !UIActive)
         {
             //UIActive = true;
             UIController.ActivateUiElement(UI_Controller.UI_element_names.Place);
             if (!interactionEventRun && Input.GetKey(interactKey))
             {
                 bookShelfInteraction.Invoke();
                 interactionEventRun = true;
             }
         }
         //Is The player out of focus
         else if (distance >= radius)// && UIActive)
         {
             //UIActive = false;
             UIController.DeactivateUiElement(UI_Controller.UI_element_names.Place);
         }
     }
 }