Exemple #1
0
 public void InitTaskNPCData(StoryPersonInfo storyPersonInfo)
 {
     m_storyPersonInfo = storyPersonInfo;
 }
Exemple #2
0
    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);
    }
Exemple #3
0
    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);
    }