Пример #1
0
    private void AddClientEvent()
    {
        ClientEvent.onClick = (obj) =>
        {
            SoundManager.Instance.PlaySoundEffect("Sound_Button_Story_Click");
            if (m_typingFinish)
            {
                m_talkTextIndex++;
                if (m_talkTextIndex < talkTexts.Length)
                {
                    TalkContentData content = new TalkContentData();
//					string[] talkStrArr = talkTexts[m_talkTextIndex].Split('+');
//					int playerProfession = int.Parse(talkStrArr[0]);
//					switch(playerProfession)
//					{
//
//					}
                    content.Init(LanguageTextManager.GetString(talkTexts[m_talkTextIndex]));
                    StartCoroutine(TypingTalkContent(content));
                }
                else
                {
                    if (StoryGuideFinishAct != null)
                    {
                        StoryGuideFinishAct();
                    }
                }
            }
            else
            {
                m_typingFinish = true;
            }
        };
    }
Пример #2
0
    /// <summary>
    /// Fill dialog box conetent
    /// </summary>
    /// <param name="storyTallType"></param>
    private void FillTackContent(StoryTallType storyTallType)
    {
        string     titleName = string.Empty, dialogContent = string.Empty;
        GameObject icon = null;

        switch (storyTallType)
        {
        case StoryTallType.Player:      //玩家,看对话框类型
            var playerDataStruct = (SMsgPropCreateEntity_SC_MainPlayer)PlayerManager.Instance.FindHeroEntityModel().EntityDataStruct;
            titleName     = playerDataStruct.Name;
            dialogContent = LanguageTextManager.GetString(m_talkIdConfigData.TalkText);
            var fashionId   = playerDataStruct.GetCommonValue().PLAYER_FIELD_VISIBLE_FASHION;
            var vocationId  = playerDataStruct.GetPlayerKind();
            var npcTackData = CommonDefineManager.Instance.CommonDefine.HeroIcon_NPCTalk.SingleOrDefault(P => P.FashionID == fashionId && P.VocationID == vocationId);
            if (npcTackData != null)
            {
                icon = npcTackData.TalkHead;
            }
            break;

        case StoryTallType.NPC:      //NPC
            titleName     = LanguageTextManager.GetString(m_talkIdConfigData.NPCName);
            dialogContent = LanguageTextManager.GetString(m_talkIdConfigData.TalkText);
            icon          = m_talkIdConfigData.TalkHead;
            break;
        }
        switch (m_talkIdConfigData.DialogPrefab)
        {
        case DialogBoxType.Right:
        case DialogBoxType.Left:
            NpcName.text = titleName;
            break;

        case DialogBoxType.RightWithIcon:
        case DialogBoxType.LeftWithIcon:
            NpcName.text = titleName;
            if (icon != null)
            {
                var pic = NGUITools.AddChild(NpcIconPoint, icon);
                pic.transform.localScale = icon.transform.localScale;
            }
            break;
        }
        if (talkTexts.Length > 0)
        {
            TalkContentData content = new TalkContentData();
            content.Init(LanguageTextManager.GetString(talkTexts[m_talkTextIndex]));
            StartCoroutine(TypingTalkContent(content));
        }
    }
Пример #3
0
    /// <summary>
    /// NPC内容打字呈现
    /// </summary>
    /// <param name="content"></param>
    /// <returns></returns>
    private IEnumerator TypingTalkContent(TalkContentData content)
    {
        m_typingFinish = false;
        var waitingTime = new WaitForSeconds(1f / CommonDefineManager.Instance.CommonDefine.DialogSpeed);
        int length      = content.FormatString.Length;
        int subLength   = 0;

        while (!m_typingFinish)
        {
            DialogContent.text = content.GetTalContent(++subLength);
            yield return(waitingTime);

            if (subLength >= length)
            {
                m_typingFinish = true;
            }
        }
        DialogContent.text = content.GetTalContent(length);
    }