示例#1
0
    // ========================================================================== //

    /* public - [Do] Function
     * 외부 객체가 호출                         */

    public void DoAddListner(string strListenEvent, IDialogueListner pListner)
    {
        if (_mapDialogueListner.ContainsKey(strListenEvent) == false)
        {
            _mapDialogueListner.Add(strListenEvent, new List <IDialogueListner>());
        }
        else
        {
            _mapDialogueListner[strListenEvent].Clear();             // 한번 더 들어올때는 이미 파괴된 리스너라서 클리어 해줘야함
        }
        _mapDialogueListner[strListenEvent].Add(pListner);
    }
示例#2
0
    private void EventSet_DialogueScene(int iDialogueScene)
    {
        if (_bEndOfDialogue)
        {
            List <IDialogueListner> listListner = _mapDialogueListner[_strCurrentEvent];
            for (int i = 0; i < listListner.Count; i++)
            {
                listListner[i].IDialogueListner_OnFinishDialogue();
            }
            return;
        }

        _iCurDialogueIndex = Mathf.Clamp(iDialogueScene, 0, _listDialogueCurrent.Count - 1);
        _bEndOfDialogue    = iDialogueScene == _listDialogueCurrent.Count - 1;

        if (_mapDialogueListner.ContainsKey_PrintOnError(_strCurrentEvent) && _listDialogueCurrent.Count != 0)
        {
            List <IDialogueListner> listListner = _mapDialogueListner[_strCurrentEvent];
            for (int i = 0; i < listListner.Count; i++)
            {
                SDataTable_Dialogue pDataDialogue = _listDialogueCurrent[_iCurDialogueIndex];
                if (_iCurDialogueIndex == 0)
                {
                    IDialogueListner pListener = listListner[i];
                    if (pListener != null)
                    {
                        pListener.IDialogueListner_OnStartDialogue(pDataDialogue);
                    }
                    else
                    {
                        Debug.LogError("왜 리스너가 없니...");
                    }
                }


                listListner[i].IDialogueListner_OnPlayDialogue(_listDialogueCurrent[_iCurDialogueIndex], _bEndOfDialogue);
            }
        }
    }