Ejemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        fwd = transform.TransformDirection(Vector3.forward);

        int layerMask = 1 << 8;

        layerMask = ~layerMask;
        if (Physics.Raycast(transform.position, fwd, out hit, range, layerMask))
        {
            DialogueActor actor = hit.transform.gameObject.GetComponent <DialogueActor>();
            if (actor != null)
            {
                StoryObject.SendMessage("ActivateTalk", actor.actorName);
            }
            else
            {
                StoryObject.SendMessage("NoTalk");
            }
        }

        if (Input.GetKeyDown(KeyCode.E))
        {
            if (lastPressed + 0.2f < Time.time)
            {
                lastPressed = Time.time;
                if (Physics.Raycast(transform.position, fwd, out hit, range, layerMask))
                {
                    if (hit.distance < range)
                    {
                        if (hit.collider is CapsuleCollider)
                        {
                            DialogueWindow window = hit.transform.gameObject.GetComponent(typeof(DialogueWindow)) as DialogueWindow;
                            //Debug.Log(actor.actorName);
                            window.OnTalkPrompt();
                        }
                    }
                }
            }
        }
    }