public void UpdateDialogAction(List <StroyDialogConfigData> dialogData) { m_dialogData = new StroyDialogConfigData[dialogData.Count]; for (int i = 0; i < dialogData.Count; i++) { m_dialogData[i] = new StroyDialogConfigData(); if (dialogData == null) { m_dialogData[i] = null; } else { m_dialogData[i] = dialogData[i]; } } m_isAction = true; //ShowDialogUI(); if (dialogData.Count > 0) { DialogButton.SetButtonActive(true); m_curDialogIndex = 0; } }
public void ShowDialogPanel(StroyDialogConfigData item) { m_curDialogData = item; /*if (m_signText == null) * { * m_signText = GameObject.Instantiate(SignText) as GameObject; * m_signText.transform.parent = this.transform; * m_signText.transform.localScale = Vector3.one; * }*/ /*if (StroyLineDataManager.Instance.GetNpcList.ContainsKey(m_curDialogData._NpcID)) * m_curNpcBehaviour = StroyLineDataManager.Instance.GetNpcList[m_curDialogData._NpcID]; * else * { * TraceUtil.Log("指定的NpcID不存在"); * m_curNpcBehaviour = null; * }*/ if (m_dialogPanel != null) { DestroyImmediate(m_dialogPanel); } m_dialogPanel = GameObject.Instantiate(lineDialogList[(int)item._DialogType - 1], this.m_curDialogData._ViewOffset, Quaternion.identity) as GameObject; if (m_dialogPanel != null) { m_dialogPanel.transform.parent = dialogAnchorParent.transform; m_dialogPanel.transform.localPosition = this.m_curDialogData._ViewOffset; m_dialogPanel.transform.localScale = Vector3.one; //jamfing //m_dialogPanel.GetComponentsInChildren<UIAnchor>().ApplyAllItem(P => P.uiCamera = UICamera); TalkIdConfigData talkIdConfigData = new TalkIdConfigData(); talkIdConfigData.DialogPrefab = (DialogBoxType)m_curDialogData._DialogType; talkIdConfigData.TalkType = (StoryTallType)m_curDialogData._NpcOrPlayer; if (talkIdConfigData.TalkType == StoryTallType.NPC) { talkIdConfigData.NPCName = m_curDialogData._NpcName; talkIdConfigData.TalkHead = m_curDialogData.npcIconPrefab; } else { talkIdConfigData.NPCName = PlayerManager.Instance.FindHeroDataModel().Name; } talkIdConfigData.TalkText = m_curDialogData._Content; talkIdConfigData.TalkID = 0; talkIdConfigData.TextPos = "0"; talkIdConfigData.isTaskTalkMark = false; StoryDialogBehaviour storyPanelBehaviour = m_dialogPanel.GetComponent <StoryDialogBehaviour>(); storyPanelBehaviour.StoryGuideFinishAct = () => { SoundManager.Instance.PlaySoundEffect("Sound_Button_TaskStory_Next"); DialogButtonHandle(null); }; storyPanelBehaviour.Init(talkIdConfigData); //m_dialogPanel.GetComponent<StroyLinePanel>().InitDialogPanel(item); } }
private static void StroyDialogConfigPostprocess() { string path = System.IO.Path.Combine(RESOURCE_STROY_CONFIG_FOLDER, "DialogConfig.xml"); TextReader tr = new StreamReader(path); string text = tr.ReadToEnd(); if (text == null) { Debug.LogError("CameraGroup config file not exist"); return; } else { XmlSpreadSheetReader.ReadSheet(text); XmlSpreadSheet sheet = XmlSpreadSheetReader.Output; string[] keys = XmlSpreadSheetReader.Keys; object[] levelIds = sheet[keys[0]]; List <StroyDialogConfigData> tempList = new List <StroyDialogConfigData>(); for (int i = 0; i < levelIds.Length; i++) { if (0 == i || 1 == i) { continue; } StroyDialogConfigData data = new StroyDialogConfigData(); data._DialogID = Convert.ToInt32(sheet["DialogID"][i]); data._Content = Convert.ToString(sheet["Content"][i]); var viewOffsetString = Convert.ToString(sheet["ViewOffset"][i]); string[] viewposList = viewOffsetString.Split("+".ToCharArray()); float viewoffsetX = Convert.ToSingle(viewposList[0]); float viewoffsetY = Convert.ToSingle(viewposList[1]); data._ViewOffset = new Vector3(viewoffsetX, viewoffsetY, 0); data._NpcOrPlayer = Convert.ToInt32(sheet["TalkNPCID"][i]); data._DialogType = Convert.ToInt32(sheet["DialogType"][i]); data._NpcName = Convert.ToString(sheet["NpcName"][i]); data._NpcIconName = Convert.ToString(sheet["NpcIconName"][i]); //1玩家,2是npc if (data._NpcOrPlayer == 2) { data.npcIconPrefab = (GameObject)Resources.LoadAssetAtPath("Assets/Prefab/GUI/IconPrefab/StroyPersonHead/" + data._NpcIconName + ".prefab", typeof(GameObject)); //Prefab/GUI/IconPrefab/QuickBuyIcon } tempList.Add(data); } CreateDialogConfigDataBase(tempList); } }
// 初始化对话数据 public void InitDialogPanel(StroyDialogConfigData item) { m_dialogData = item; string name = LanguageTextManager.GetString(item._NpcName); string playerName = System.Text.Encoding.UTF8.GetString(PlayerManager.Instance.FindHeroDataModel().m_name); NpcNameText.text = name.Contains("{0}") ? playerName : name; //ClickSignText.text = LanguageTextManager.GetString("IDS_H1_218"); m_dialogLength = 0; m_dialogText = LanguageTextManager.GetString(item._Content); //NpcIcon.spriteName = item[m_curDialogIndex]._NpcIconName; m_isFlag = true; }