//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, October 13, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; //任务的默认对话筐 namespace vnxbqy.UI { public class DefaultDialogueBoxWin : Window { public Text _TextName;//NPC名称 public Text _TextDefaultDialogue;//默认对话内容 public Button _BtnEnter;//确认按钮 public Button _CloseBtn;//关闭按钮 private int _NPCID = 0;//获取NPCID Dictionary _AllMissionDict = new Dictionary();//任务初始化接收字典 #region Built-in TaskModel m_TaskModel; TaskModel taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel()); } } protected override void BindController() { } protected override void AddListeners() { _BtnEnter.onClick.AddListener(EnterButton); _CloseBtn.onClick.AddListener(CloseButton); } protected override void OnPreOpen() { Display(); taskmodel.talkNpcIdUpdate += TalkNpcIdUpdate; } protected override void OnAfterOpen() { } protected override void OnPreClose() { taskmodel.talkNpcIdUpdate -= TalkNpcIdUpdate; } private void TalkNpcIdUpdate(int npcId) { if (_NPCID != npcId) { Display(); } } void Display() { _AllMissionDict = taskmodel.allMissionDict; _NPCID = taskmodel.NPCid; var npcConfig = NPCConfig.Get(_NPCID); if (npcConfig != null) { if (npcConfig.NPCSpeakID != 0) { SoundPlayer.Instance.PlayNpcAudio(npcConfig.NPCSpeakID); } } ContentAssignmen(); } private void IsOpenMaininterface() { Close(); } protected override void LateUpdate() { base.LateUpdate(); if (WindowCenter.Instance.IsOpen("MainInterfaceWin")) { WindowCenter.Instance.Close(); } var hero = PlayerDatas.Instance.hero; if (hero != null && hero.LockTarget != null) { var checkDistSqrt = MathUtility.DistanceSqrtXZ(hero.Pos, hero.LockTarget.Pos); if (checkDistSqrt > Mathf.Pow(GeneralDefine.FarawayNpcDist, 2)) { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); hero.LockTarget = null; } } } protected override void OnAfterClose() { } #endregion void EnterButton() { Close(); WindowCenter.Instance.Open(); SelectionManager.Release(SelectionManager.E_Type.Green); } void CloseButton() { Close(); WindowCenter.Instance.Open(); SelectionManager.Release(SelectionManager.E_Type.Green); } void ContentAssignmen()//内容赋值 { NPCConfig Npc = NPCConfig.Get(_NPCID); _TextName.text = Npc.charName; string _taskInfoKey = string.Format("d_{0}_0_1", _NPCID); if (TASKINFOConfig.Get(_taskInfoKey) == null) return; TASKINFOConfig DefaultDialogContent = TASKINFOConfig.Get(_taskInfoKey); _TextDefaultDialogue.text = DefaultDialogContent.show_writing; } } }