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; } }; }
/// <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)); } }
/// <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); }