protected override void HandleAfterOpenView() { base.HandleAfterOpenView(); _currentNpcId = _npcDialogModel.CurrentNpcId; _currentSysNpcVo = BaseDataMgr.instance.GetNpcVoById(_currentNpcId); ShowRightInfo(); Singleton <MainView> .Instance.CloseView(); }
/**创建NPC**/ public NpcDisplay CreateNpc(DisplayVo vo) { if (vo == null) { return(null); } vo.Type = DisplayType.NPC; var display = new NpcDisplay(); NpcDisplayList.Add(display); objectList.Add(display); SysNpcVo sysNpcVo = BaseDataMgr.instance.GetNpcVoById(vo.Id); if (sysNpcVo == null) { Log.error(this, "NPC表不存在NPC,Id:" + vo.Id); return(null); } vo.ClothUrl = "Model/Npc/" + sysNpcVo.model + "/Model/BIP.assetbundle"; display.SetVo(vo); return(display); }
public override void Run() { UILabel labName; UILabel labWords; //主角显示在左侧 if (StoryConst.SELF_ID == this.npcId) { Singleton <StoryView> .Instance.LeftNPC.SetActive(true); Singleton <StoryView> .Instance.RightNPC.SetActive(false); sprNPC = Singleton <StoryView> .Instance.LeftNPCSprite; labName = Singleton <StoryView> .Instance.LeftNPCName; labWords = Singleton <StoryView> .Instance.LeftNPCWords; NPCBustMgr.Instance.GetBust(MeVo.instance.BustUrl, RoleBustLoaded); } //NPC显示在右侧 else { Singleton <StoryView> .Instance.LeftNPC.SetActive(false); Singleton <StoryView> .Instance.RightNPC.SetActive(true); sprNPC = Singleton <StoryView> .Instance.RightNPCSprite; labName = Singleton <StoryView> .Instance.RightNPCName; labWords = Singleton <StoryView> .Instance.RightNPCWords; } talkWindow = Singleton <StoryView> .Instance.TalkWindow; //显示对话框 if (!talkWindow.activeSelf) { talkWindow.SetActive(true); } //打字机不能重复利用,需要先删除再创建 TypewriterEffect typewriter = labWords.GetComponent <TypewriterEffect>(); if (null != typewriter) { GameObject.Destroy(typewriter); } //获得头像、主角名字 string spriteName = ""; string roleName = ""; if (StoryConst.SELF_ID == this.npcId) { //主角头像 spriteName = Singleton <RoleMode> .Instance.GetPlayerHeadSpriteName(MeVo.instance.job); roleName = MeVo.instance.Name; } else { CreateAction action = Singleton <StoryMode> .Instance.GetCreateAction(this.npcId); if (null != action) { string resourceId = action.ResourceId; //为怪物 if (action.IsMonster) { SysMonsterVo vo = BaseDataMgr.instance.getSysMonsterVo(Convert.ToUInt32(resourceId)); if (null != vo) { spriteName = vo.icon.ToString(); roleName = vo.name; } } //为NPC else { SysNpcVo vo = BaseDataMgr.instance.GetNpcVoById(Convert.ToUInt32(resourceId)); if (null != vo) { spriteName = vo.halfImgSprite; roleName = vo.name; } } bust = action.Bust; } } sprNPC.atlas = Singleton <AtlasManager> .Instance.GetAtlas(AtlasManager.Header); sprNPC.spriteName = spriteName; sprNPC.SetActive(false); labName.text = roleName; labWords.text = this.words; if (null != bust) { bust.SetActive(true); bustVisible = true; } if (delay > 0f) { vp_Timer.In(delay, Finish, 1, 0); } //增加打字效果(测试先屏蔽) //typewriter = labWords.gameObject.AddComponent<TypewriterEffect>(); //typewriter.charsPerSecond = 20; //typewriter.DoTypeEnd = Finish; }