public void InitTaskNPCData(StoryPersonInfo storyPersonInfo) { m_storyPersonInfo = storyPersonInfo; }
public StoryPersonInfo GetStoryPersonInfo(int index) { StoryPersonInfo storyPersonInfo = null; switch (index) { case 0: storyPersonInfo = StroyPerson01; break; case 1: storyPersonInfo = StroyPerson02; break; case 2: storyPersonInfo = StroyPerson03; break; case 3: storyPersonInfo = StroyPerson04; break; case 4: storyPersonInfo = StroyPerson05; break; case 5: storyPersonInfo = StroyPerson06; break; case 6: storyPersonInfo = StroyPerson07; break; case 7: storyPersonInfo = StroyPerson08; break; case 8: storyPersonInfo = StroyPerson09; break; case 9: storyPersonInfo = StroyPerson10; break; case 10: storyPersonInfo = StroyPerson11; break; case 11: storyPersonInfo = StroyPerson12; break; case 12: storyPersonInfo = StroyPerson13; break; case 13: storyPersonInfo = StroyPerson14; break; case 14: storyPersonInfo = StroyPerson15; break; case 15: storyPersonInfo = StroyPerson16; break; } return(storyPersonInfo); }
private GameObject MakeNPC(int index, TaskNewConfigData runningTaskConfigData) { GameObject npc = null; StoryPersonInfo storyPersonInfo = runningTaskConfigData.GetStoryPersonInfo(index); if (storyPersonInfo != null && storyPersonInfo.SrotyPersonPrefab != null) { var pos = storyPersonInfo.PersonPos; Quaternion npcDir = Quaternion.Euler(0, storyPersonInfo.StartAngle, 0); npc = GameObjectPool.Instance.AcquireLocal(storyPersonInfo.SrotyPersonPrefab, pos, npcDir); if (npc.GetComponent <NPCBehaviour>() != null) { npc.RemoveComponent <NPCBehaviour>("NPCBehaviour"); } var tasknpcBehaviour = npc.GetComponent <TaskNPCBehaviour>(); if (tasknpcBehaviour == null) { tasknpcBehaviour = npc.AddComponent <TaskNPCBehaviour>(); } tasknpcBehaviour.InitTaskNPCData(storyPersonInfo); tasknpcBehaviour.ShowTaskNpcPanel = (personInfo) => { if (personInfo != null) { var playerBehaviour = (PlayerBehaviour)PlayerManager.Instance.FindHeroEntityModel().Behaviour; if (playerBehaviour.FSMSystem.CurrentStateID == StateID.PlayerFindPathing) { PlayerManager.Instance.HeroAgent.enabled = false; //playerBehaviour.FSMSystem.PerformTransition(Transition.PlayerToIdle); } //显示面板 var taskNpcTalkPanelBehaviour = UI.CreatObjectToNGUI.InstantiateObj(TaskNpcTalkPanelGo, npcTalkParent).GetComponent <TaskNpcTalkPanelBehaviour>(); // NGUITools.AddChild(gameObject, TaskNpcTalkPanelGo).GetComponent<TaskNpcTalkPanelBehaviour>(); int storyBoxStyle = personInfo.StoryBoxStyle - 1; var storyPanel = StoryDialogPrefabs[storyBoxStyle]; TalkIdConfigData talkIdConfigData = new TalkIdConfigData(); talkIdConfigData.DialogPrefab = (DialogBoxType)personInfo.StoryBoxStyle; talkIdConfigData.NPCName = personInfo.PersonNameIDS; talkIdConfigData.TalkHead = personInfo.SrotyPersonHeadPrefab; talkIdConfigData.TalkID = 0; talkIdConfigData.TalkText = personInfo.DialogIDS; talkIdConfigData.TalkType = StoryTallType.NPC; talkIdConfigData.isTaskTalkMark = false; talkIdConfigData.TextPos = "0"; taskNpcTalkPanelBehaviour.Show(storyPanel, talkIdConfigData); if (personInfo.DialogVoiceIDS != "0") { SoundManager.Instance.PlaySoundEffect(personInfo.DialogVoiceIDS); } m_showingNpcTalkPanel = taskNpcTalkPanelBehaviour.gameObject; //send event to joystick of TownUI UIEventManager.Instance.TriggerUIEvent(UIEventType.OnNpcTalkOpenEvent, null); } }; string npcName = storyPersonInfo.PersonNameIDS;// string szNpcTitle = ""; var npcTitleGo = GameObjectPool.Instance.AcquireLocal(NpcTitle, Vector3.zero, Quaternion.identity); npcTitleGo.transform.parent = BattleManager.Instance.UICamera.transform; npcTitleGo.transform.localScale = new Vector3(20, 20, 20); npcTitleGo.GetComponent <NPCTitle>().SetNpcTitle(npcName, szNpcTitle, npc.transform.FindChild("NPCTitle").position); m_NPCTitles.Add(npcTitleGo); } return(npc); }