Beispiel #1
0
    private void OnTriggerExit(Collider other)
    {
        if (npcLayerMask == (npcLayerMask | (1 << other.gameObject.layer)))
        {
            TalkableNPC npc = other.GetComponent <TalkableNPC>();
            if (npc == null)
            {
                Debug.LogError("Exited trigger of chracter who is not NPC.");
                return;
            }

            if (currTalkableNPC_ != npc)
            {
                Debug.LogWarning("Exiting NPC range of an NPC you weren't in range of.");
                npc.SetInteractable(false);
            }

            currTalkableNPC_.SetInteractable(false);
            currTalkableNPC_ = null;
        }
        else if (teleporterLayerMask == (teleporterLayerMask | (1 << other.gameObject.layer)))
        {
            if (other.GetComponent <TeleportPoint>() == lastTpTarget_)
            {
                lastTpTarget_ = null;
            }
        }
    }
Beispiel #2
0
    private void OnTriggerEnter(Collider other)
    {
        if (npcLayerMask == (npcLayerMask | (1 << other.gameObject.layer)))
        {
            TalkableNPC npc = other.GetComponent <TalkableNPC>();
            if (npc == null)
            {
                Debug.LogError("Entered trigger of chracter who is not NPC.");
                return;
            }

            if (currTalkableNPC_ != null)
            {
                Debug.LogWarning("Overriding current NPC to talk to.");
                currTalkableNPC_.SetInteractable(false);
            }

            currTalkableNPC_ = npc;
            if (!currTalkableNPC_.HasAvailableModel())
            {
                Debug.LogWarning("This NPC somehow has no avialable dialogue.");
                return;
            }
            currTalkableNPC_.SetInteractable(true);
        }
    }
Beispiel #3
0
    private void OnTriggerEnter(Collider other)
    {
        if (m_npcLayerMask == (m_npcLayerMask | (1 << other.gameObject.layer)))
        {
            TalkableNPC npc = other.GetComponent <TalkableNPC>();
            if (npc == null)
            {
                Debug.LogError("Entered trigger of chracter who is not NPC.");
                return;
            }

            if (m_currTalkableNPC != null)
            {
                Debug.LogWarning("Overriding current NPC to talk to.");
                m_currTalkableNPC.SetInteractable(false);
            }

            string dialogueNodeName = npc.DialogueNodeName;

            // Check NodeExists
            if (!m_dialogueRunner.NodeExists(dialogueNodeName))
            {
                Debug.LogError(string.Format(
                                   "Dialogue node with name ({0}) does not exist.", dialogueNodeName));
                m_currTalkableNPC = null;
                return;
            }

            m_currTalkableNPC = npc;
            m_currTalkableNPC.SetInteractable(true);
        }
    }
Beispiel #4
0
    private void OnTriggerExit(Collider other)
    {
        if (m_npcLayerMask == (m_npcLayerMask | (1 << other.gameObject.layer)))
        {
            TalkableNPC npc = other.GetComponent <TalkableNPC>();
            if (npc == null)
            {
                Debug.LogError("Exited trigger of chracter who is not NPC.");
                return;
            }

            if (m_currTalkableNPC != npc)
            {
                Debug.LogWarning("Exiting NPC range of an NPC you weren't in range of.");
                npc.SetInteractable(false);
            }

            if (m_currTalkableNPC == null)
            {
                return;
            }

            m_currTalkableNPC.SetInteractable(false);
            m_currTalkableNPC = null;
        }
    }
Beispiel #5
0
    public void OnDialogueCompletion()
    {
        m_playerMovement.SetFrozen(false);
        if (m_currTalkableNPC == null)
        {
            return;
        }
        if (!m_currTalkableNPC.gameObject.activeSelf)
        {
            m_currTalkableNPC = null;
            return;
        }

        m_currTalkableNPC.SetTalkAnim(false);
        m_currTalkableNPC.SetInteractable(true, false);
    }
Beispiel #6
0
 // Start is called before the first frame update
 void Start()
 {
     flagManager_ = FlagManager.Instance;
     flagManager_.AddListener(OnEventFlagCompleted);
     talkableNPC = GetComponent <TalkableNPC>();
 }