Exemple #1
0
    override public void LookAt()
    {
        base.LookAt();

        string verb = "OPEN";

        if (m_IsOpen)
        {
            verb = "CLOSE";
        }

        m_uiGame.SetInteractText(verb + " Door");
    }
Exemple #2
0
 virtual public void LookAt()
 {
     //uiGame = FindObjectOfType<UIGameManager>();
     uiGame.SetInteractText(verb + " " + itemName);
 }
    private void Update()
    {
        if (PauseManager.isPaused)
        {
            return;
        }

        #region Raycasting for Interaction

        // Raycasting for interaction
        m_uiGame.SetInteractText("");

        RaycastHit[] allHits;
        int          layerMask = 1 << gameObject.layer;
        layerMask = LayerMask.NameToLayer("Interactable");
        layerMask = ~layerMask;

        allHits = Physics.RaycastAll(Camera.main.transform.position, Camera.main.transform.forward, interactReach, layerMask, QueryTriggerInteraction.Collide);

        foreach (var hit in allHits)
        {
            if (hit.transform.gameObject.layer != layerMask)
            {
                var interacted = hit.transform.gameObject.GetComponent(typeof(Interactive)) as Interactive;
                if (interacted != null)
                {
                    interacted.LookAt();

                    if (Input.GetKeyDown("e"))
                    {
                        interacted.Interact();
                        if (interacted.verb == Interactive.Verbs.GET)
                        {
                            items.Add(interacted.GetItem());
                        }
                    }
                }
            }
        }

        #endregion


        target = null;
        Monster_TV monster = FindObjectOfType <Monster_TV>();
        if (monster)
        {
            if (monster.alive)
            {
                target = monster.screenTransform;
            }
        }
        //Collider[] overlap = Physics.OverlapSphere(transform.position, 5f);
        //foreach (Collider c in overlap)
        //{
        //    if (c.gameObject.GetComponent<Monster_TV>())
        //    {
        //        c.gameObject.GetComponent<Monster_TV>().alive = true;
        //        target = c.GetComponent<Monster_TV>().screenTransform;
        //    }
        //}

        hasFlashlight = false;
        // Inventory check
        foreach (Interactive.Items i in items)
        {
            if (i == Interactive.Items.FLASHLIGHT)
            {
                hasFlashlight = true;
            }
        }

        if (hasFlashlight)
        {
            if (Input.GetKeyDown("f"))
            {
                // Toggle the flashlight
                flashlightIsOn = !flashlightIsOn;
                if (flashlightIsOn)
                {
                    AudioManager.PlaySound(flashlightSoundOn);
                }
                else
                {
                    AudioManager.PlaySound(flashlightSoundOff);
                }
            }
            flashlight.enabled = flashlightIsOn;
        }
        else
        {
            flashlight.enabled = false;
        }
    }