Example #1
0
 protected void UIForStoryInfoDetailsExpression(StoryInfoDetailsBean itemData)
 {
     EditorUI.GUIText("指定NPC展现表情 ", 150, 20);
     EditorUI.GUIText("NPC编号:", 120, 20);
     itemData.num        = int.Parse(EditorUI.GUIEditorText(itemData.num + "", 200, 20));
     itemData.expression = (int)EditorUI.GUIEnum <CharacterExpressionEnum>("表情编号:", itemData.expression, 300, 20);
 }
Example #2
0
 protected void UIForStoryInfoDetailsPropPosition(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     if (EditorUI.GUIButton("更新显示", 100, 20))
     {
         RemoveSceneObjByName("prop_" + itemData.num);
         RefreshSceneData(listOrderStoryInfoDetails);
     }
     if (EditorUI.GUIButton("获取显示坐标", 120, 20))
     {
         GameObject objItem = GetSceneObjByName("prop_" + itemData.num);
         itemData.position_x = objItem.transform.localPosition.x;
         itemData.position_y = objItem.transform.localPosition.y;
     }
     EditorUI.GUIText("道具名称:", 50, 20);
     itemData.key_name = EditorUI.GUIEditorText(itemData.key_name, 100, 20);
     EditorUI.GUIText("道具序号:", 100, 20);
     itemData.num = EditorUI.GUIEditorText(itemData.num, 50, 20);
     EditorUI.GUIText("道具站位 ", 100, 20);
     EditorUI.GUIText("道具位置X:", 120, 20);
     itemData.position_x = EditorUI.GUIEditorText(itemData.position_x, 100, 20);
     EditorUI.GUIText("道具位置Y:", 120, 20);
     itemData.position_y = EditorUI.GUIEditorText(itemData.position_y, 100, 20);
     EditorUI.GUIText("道具朝向1左2右:", 120, 20);
     itemData.face = EditorUI.GUIEditorText(itemData.face, 50, 20);
 }
Example #3
0
 protected void UIForStoryInfoDetailsNpcDestory(StoryInfoDetailsBean itemData)
 {
     EditorUI.GUIText("删除角色(num,num):", 120, 20);
     itemData.npc_destroy = EditorUI.GUIEditorText(itemData.npc_destroy, 200, 20);
     EditorUI.GUIText("延迟删除时间s:", 120, 20);
     itemData.wait_time = EditorUI.GUIEditorText(itemData.wait_time);
 }
Example #4
0
    /// <summary>
    /// 生成道具
    /// </summary>
    /// <param name="itemData"></param>
    public void CreateProp(StoryInfoDetailsBean itemData)
    {
        GameObject objPropModel = StoryInfoHandler.Instance.manager.GetStoryPropModelByName(itemData.key_name);
        GameObject objProp      = Instantiate(transform.gameObject, objPropModel);

        listPropObj.Add(objProp);
        objProp.name = "prop_" + itemData.num;

        //设置位置和朝向
        objProp.transform.localPosition = new Vector3(itemData.position_x, itemData.position_y);
        Vector3 bodyScale = objProp.transform.localScale;

        switch (itemData.face)
        {
        case 1:
            bodyScale.x = -1;
            break;

        case 2:
            bodyScale.x = 1;
            break;
        }
        objProp.transform.localScale = bodyScale;

        //如果有移动控件
        CharacterMoveCpt characterMove = objProp.GetComponent <CharacterMoveCpt>();

        if (characterMove != null)
        {
            characterMove.SetMoveSpeed(1);
        }
    }
Example #5
0
    public void HandleForCameraFollowCharacter(StoryInfoDetailsBean itemData)
    {
        //设置摄像头位置
        GameObject  objNpc      = GetNpcByNpcNum(itemData.num);
        BaseControl baseControl = GameControlHandler.Instance.manager.GetControl <ControlForStoryCpt>(GameControlHandler.ControlEnum.Story);

        baseControl.SetCameraFollowObj(objNpc);
    }
Example #6
0
    public void HandleForEffect(StoryInfoDetailsBean itemData)
    {
        Vector3 effectPosition = new Vector3(itemData.position_x, itemData.position_y);
        string  effectName     = itemData.key_name;
        float   effectTime     = itemData.wait_time;

        EffectHandler.Instance.PlayEffect(effectName, effectPosition, effectTime);
    }
Example #7
0
    public bool HandleForTalk(StoryInfoDetailsBean itemData)
    {
        //进入对话;
        UIGameText uiComponent = UIHandler.Instance.manager.OpenUIAndCloseOther <UIGameText>(UIEnum.GameText);

        uiComponent.SetData(TextEnum.Story, itemData.text_mark_id);
        return(false);
    }
Example #8
0
    public void HandleForCameraPosition(StoryInfoDetailsBean itemData)
    {
        //设置摄像头位置
        BaseControl baseControl         = GameControlHandler.Instance.manager.GetControl <ControlForStoryCpt>(GameControlHandler.ControlEnum.Story);
        Vector3     cameraWorldPosition = transform.TransformPoint(new Vector3(itemData.position_x, itemData.position_y));

        baseControl.SetCameraFollowObj(null);
        baseControl.SetFollowPosition(cameraWorldPosition);
    }
Example #9
0
 protected void UIForStoryInfoDetailsAudioSound(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     itemData.audio_sound = (int)EditorUI.GUIEnum <AudioSoundEnum>("音效类型:", itemData.audio_sound, 300, 20);
 }
Example #10
0
 protected void UIForStoryInfoDetailsAudioMusic(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     itemData.audio_music = (int)EditorUI.GUIEnum <AudioMusicEnum>("音乐类型:", itemData.audio_music, 300, 20);
 }
Example #11
0
 protected void UIForStoryInfoDetailsCameraFollowCharacter(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     EditorUI.GUIText("摄像头跟随角色序号 ", 200, 20);
     itemData.num = EditorUI.GUIEditorText(itemData.num, 100, 20);
 }
Example #12
0
    /// <summary>
    /// 展示指定顺序的故事详情
    /// </summary>
    public void GUIStoryInfoDetailsList()
    {
        for (int i = 0; i < listOrderStoryInfoDetails.Count; i++)
        {
            StoryInfoDetailsBean itemData = listOrderStoryInfoDetails[i];
            UIForStoryInfoDetails(itemData);
        }

        GUILayout.Space(50);
        UIForStoryInfoDetailsButton();
    }
Example #13
0
 protected void UIForStoryInfoDetailsAutoNext(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     EditorUI.GUIText("延迟执行 ", 100, 20);
     EditorUI.GUIText("延迟时间s:", 120, 20);
     itemData.wait_time = float.Parse(EditorUI.GUIEditorText(itemData.wait_time + "", 100, 20));
 }
Example #14
0
 protected void UIForStoryInfoDetailsSceneInt(StoryInfoDetailsBean itemData)
 {
     EditorUI.GUIText("场景互动 ", 120, 20);
     EditorUI.GUIText("互动物体名称:", 120, 20);
     itemData.scene_intobj_name = EditorUI.GUIEditorText(itemData.scene_intobj_name, 200, 20);
     EditorUI.GUIText("互动类型名称:", 120, 20);
     itemData.scene_intcomponent_name = EditorUI.GUIEditorText(itemData.scene_intcomponent_name, 200, 20);
     EditorUI.GUIText("互动方法:", 120, 20);
     itemData.scene_intcomponent_method = EditorUI.GUIEditorText(itemData.scene_intcomponent_method, 200, 20);
     EditorUI.GUIText("互动方法参数:", 120, 20);
     itemData.scene_intcomponent_parameters = EditorUI.GUIEditorText(itemData.scene_intcomponent_parameters, 200, 20);
 }
Example #15
0
 protected void UIForStoryInfoDetailsNpcEquip(StoryInfoDetailsBean itemData)
 {
     EditorUI.GUIText("指定NPC穿着(可以用,分割  前为男后为女):", 300, 20);
     EditorUI.GUIText("NPC num:", 120, 20);
     itemData.num = EditorUI.GUIEditorText(itemData.num);
     EditorUI.GUIText("头ID(-1默认 0不穿):", 150, 20);
     itemData.npc_hat = EditorUI.GUIEditorText(itemData.npc_hat);
     EditorUI.GUIText("衣ID(-1默认 0不穿):", 150, 20);
     itemData.npc_clothes = EditorUI.GUIEditorText(itemData.npc_clothes);
     EditorUI.GUIText("鞋ID(-1默认 0不穿):", 150, 20);
     itemData.npc_shoes = EditorUI.GUIEditorText(itemData.npc_shoes);
 }
Example #16
0
    public void HandleForNpcDestory(StoryInfoDetailsBean itemData)
    {
        //删除角色
        int[] npcNum      = StringUtil.SplitBySubstringForArrayInt(itemData.npc_destroy, ',');
        float destroyTime = itemData.wait_time;

        foreach (int itemNpcNum in npcNum)
        {
            GameObject objNpc = GetNpcByNpcNum(itemNpcNum);
            //延迟删除
            StartCoroutine(CoroutineForDelayDestoryNpc(destroyTime, objNpc));
        }
    }
Example #17
0
 protected void UIForStoryInfoSetTime(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     EditorUI.GUIText("设置时间:", 50, 20);
     EditorUI.GUIText("小时:", 50, 20);
     itemData.time_hour = EditorUI.GUIEditorText(itemData.time_hour, 100, 20);
     EditorUI.GUIText("分钟", 50, 20);
     itemData.time_minute = EditorUI.GUIEditorText(itemData.time_minute, 100, 20);
 }
Example #18
0
 protected void UIForStoryInfoDetailsCameraPosition(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     EditorUI.GUIText("摄像头位置 ", 150, 20);
     EditorUI.GUIText("x:", 50, 20);
     itemData.position_x = EditorUI.GUIEditorText(itemData.position_x, 100, 20);
     EditorUI.GUIText("y:", 50, 20);
     itemData.position_y = EditorUI.GUIEditorText(itemData.position_y, 100, 20);
 }
Example #19
0
    public void HandleForNpcExpression(StoryInfoDetailsBean itemData)
    {
        //表情
        GameObject objItem = GetNpcByNpcNum(itemData.num);

        if (objItem != null)
        {
            NpcAIStoryCpt npcAIStory = objItem.GetComponent <NpcAIStoryCpt>();
            if (npcAIStory != null)
            {
                npcAIStory.SetExpression(itemData.expression);
            }
        }
    }
Example #20
0
    protected void RemoveStoryInfoDetailsItem(StoryInfoDetailsBean itemData)
    {
        listAllStoryInfoDetails.Remove(itemData);
        listOrderStoryInfoDetails.Remove(itemData);
        if (itemData.GetStoryInfoDetailsType() == StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.NpcPosition)
        {
            RemoveSceneObjByName("character_" + itemData.num);
        }
        else if (itemData.GetStoryInfoDetailsType() == StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.PropPosition)
        {
            RemoveSceneObjByName("prop_" + itemData.num);
        }

        return;
    }
Example #21
0
 public void HandleForSceneInt(StoryInfoDetailsBean itemData)
 {
     try
     {
         //场景物体互动
         GameObject objFind = GameObject.Find(itemData.scene_intobj_name);
         //参数
         List <string> listparameter = StringUtil.SplitBySubstringForListStr(itemData.scene_intcomponent_parameters, ',');
         //通过反射调取方法
         ReflexUtil.GetInvokeMethod(objFind, itemData.scene_intcomponent_name, itemData.scene_intcomponent_method, listparameter);
     }
     catch
     {
     }
 }
Example #22
0
 protected void UIForStoryInfoDetailsEffect(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     EditorUI.GUIText("粒子名称:", 50, 20);
     itemData.key_name = EditorUI.GUIEditorText(itemData.key_name, 100, 20);
     EditorUI.GUIText("粒子位置X:", 120, 20);
     itemData.position_x = EditorUI.GUIEditorText(itemData.position_x, 100, 20);
     EditorUI.GUIText("粒子位置Y:", 120, 20);
     itemData.position_y = EditorUI.GUIEditorText(itemData.position_y, 100, 20);
     EditorUI.GUIText("持续时间(-1为永久):", 120, 20);
     itemData.wait_time = EditorUI.GUIEditorText(itemData.wait_time, 100, 20);
 }
Example #23
0
    protected void UIForStoryInfoDetailsNpcPosition(StoryInfoDetailsBean itemData)
    {
        if (EditorUI.GUIButton("更新显示", 100, 20))
        {
            RemoveSceneObjByName("character_" + itemData.num);
            RefreshSceneData(listOrderStoryInfoDetails);
        }
        if (EditorUI.GUIButton("获取显示坐标", 120, 20))
        {
            GameObject objItem = GetSceneObjByName("character_" + itemData.num);
            itemData.position_x = objItem.transform.localPosition.x;
            itemData.position_y = objItem.transform.localPosition.y;
        }
        if (EditorUI.GUIButton("删除"))
        {
            RemoveStoryInfoDetailsItem(itemData);
            return;
        }
        NpcInfoBean npcInfo;

        if (itemData.npc_id == 0)
        {
            npcInfo      = new NpcInfoBean();
            npcInfo.name = "玩家";
        }
        else if (itemData.npc_id == -1)
        {
            npcInfo      = new NpcInfoBean();
            npcInfo.name = "妻子";
        }
        else
        {
            npcInfo = mapNpcInfo[itemData.npc_id];
        }
        EditorUI.GUIText("NPCId(0:自己,-1:妻子):", 200, 20);
        itemData.npc_id = EditorUI.GUIEditorText(itemData.npc_id, 100, 20);
        EditorUI.GUIText("姓名:" + npcInfo.title_name + "-" + npcInfo.name, 200, 20);
        EditorUI.GUIText("NPC序号:", 100, 20);
        itemData.num = int.Parse(EditorUI.GUIEditorText(itemData.num + "", 50, 20));
        EditorUI.GUIText("NPC站位 ", 100, 20);
        EditorUI.GUIText("NPC位置X:", 120, 20);
        itemData.position_x = float.Parse(EditorUI.GUIEditorText(itemData.position_x + "", 100, 20));
        EditorUI.GUIText("NPC位置Y:", 120, 20);
        itemData.position_y = float.Parse(EditorUI.GUIEditorText(itemData.position_y + "", 100, 20));
        EditorUI.GUIText("NPC朝向1左2右:", 120, 20);
        itemData.face = int.Parse(EditorUI.GUIEditorText(itemData.face + "", 50, 20));
    }
Example #24
0
    public void CreateStoryInfoDetailsDataByType(long storyId, StoryInfoDetailsBean.StoryInfoDetailsTypeEnum type)
    {
        StoryInfoDetailsBean itemDetailsInfo = new StoryInfoDetailsBean();

        itemDetailsInfo.type = (int)type;
        switch (type)
        {
        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.NpcPosition:
            itemDetailsInfo.npc_id = 1;
            itemDetailsInfo.num    = 1;
            break;

        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.NpcExpression:
            break;

        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.Talk:
            itemDetailsInfo.text_mark_id = storyId * 10000 + mFindStroyOrder;
            break;

        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.NpcDestory:
            break;

        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.SceneInt:
            break;

        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.AutoNext:
            itemDetailsInfo.wait_time = 1;
            break;

        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.CameraPosition:
            break;

        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.CameraFollowCharacter:
            break;

        case StoryInfoDetailsBean.StoryInfoDetailsTypeEnum.AudioSound:
            itemDetailsInfo.audio_sound = (int)AudioSoundEnum.ButtonForNormal;
            break;
        }

        itemDetailsInfo.story_id    = storyId;
        itemDetailsInfo.story_order = mFindStroyOrder;
        listAllStoryInfoDetails.Add(itemDetailsInfo);
        listOrderStoryInfoDetails.Add(itemDetailsInfo);
        storyInfoService.UpdateStoryDetailsByIdAndOrder(mFindStoryId, mFindStroyOrder, listOrderStoryInfoDetails);
    }
Example #25
0
    public void HandleForNpcPosition(StoryInfoDetailsBean itemData)
    {
        //Npc站位
        GameObject objNpc = GetNpcByNpcNum(itemData.num);
        BaseNpcAI  npcAI;

        if (objNpc == null)
        {
            npcAI  = CreateNpc(itemData);
            objNpc = npcAI.gameObject;
        }
        else
        {
            npcAI = objNpc.GetComponent <BaseNpcAI>();
            npcAI.characterMoveCpt.SetDestinationLocal(transform, new Vector3(itemData.position_x, itemData.position_y));
        }
        npcAI.SetCharacterFace(itemData.face);
    }
Example #26
0
    /// <summary>
    /// 生成所有员工
    /// </summary>
    /// <param name="itemData"></param>
    public void CreateAllWorker(StoryInfoDetailsBean itemData)
    {
        GameDataBean         gameData          = GameDataHandler.Instance.manager.GetGameData();
        List <CharacterBean> listCharacterData = gameData.listWorkerCharacter;

        if (CheckUtil.ListIsNull(listCharacterData))
        {
            return;
        }
        if (itemData.horizontal == 0)
        {
            itemData.horizontal = 1;
        }
        int horizontalNumber     = listCharacterData.Count / itemData.horizontal;
        int tempHorizontalNumber = 0;

        for (int i = 0; i < listCharacterData.Count; i++)
        {
            CharacterBean characterData = listCharacterData[i];
            GameObject    objNpcModel   = StoryInfoHandler.Instance.manager.objNpcModel;
            GameObject    objNpc        = Instantiate(transform.gameObject, objNpcModel);

            int tempHorizontal = i / horizontalNumber;
            if (tempHorizontalNumber >= horizontalNumber)
            {
                tempHorizontalNumber = 0;
            }
            float positionX = itemData.position_x + tempHorizontalNumber * itemData.offset_x;
            float positionY = itemData.position_y + tempHorizontal * itemData.offset_y;

            tempHorizontalNumber++;

            objNpc.transform.localPosition = new Vector3(positionX, positionY);
            NpcAIStoryCpt aiNpc = objNpc.GetComponent <NpcAIStoryCpt>();
            //设置编号
            objNpc.name = "character_" + (i + 1001);
            aiNpc.SetCharacterData(characterData);
            aiNpc.SetCharacterFace(itemData.face);
            listNpcObj.Add(objNpc);
        }
    }
Example #27
0
 protected void UIForStoryInfoDetailsWorkerPosition(StoryInfoDetailsBean itemData)
 {
     if (EditorUI.GUIButton("删除"))
     {
         RemoveStoryInfoDetailsItem(itemData);
         return;
     }
     EditorUI.GUIText("员工站位", 100, 20);
     EditorUI.GUIText("员工站位X:", 120, 20);
     itemData.position_x = EditorUI.GUIEditorText(itemData.position_x, 100, 20);
     EditorUI.GUIText("员工站位Y:", 120, 20);
     itemData.position_y = EditorUI.GUIEditorText(itemData.position_y, 100, 20);
     EditorUI.GUIText("员工朝向1左2右:", 120, 20);
     itemData.face = EditorUI.GUIEditorText(itemData.face, 50, 20);
     EditorUI.GUIText("员工间隔(x y):", 120, 20);
     itemData.offset_x = EditorUI.GUIEditorText(itemData.offset_x, 50, 20);
     itemData.offset_y = EditorUI.GUIEditorText(itemData.offset_y, 50, 20);
     EditorUI.GUIText("员工横竖排数(h v):", 120, 20);
     itemData.horizontal = EditorUI.GUIEditorText(itemData.horizontal, 50, 20);
     itemData.vertical   = EditorUI.GUIEditorText(itemData.vertical, 50, 20);
 }
Example #28
0
    /// <summary>
    /// 生成NPC
    /// </summary>
    /// <param name="itemData"></param>
    public BaseNpcAI CreateNpc(StoryInfoDetailsBean itemData)
    {
        GameObject objNpcModel = StoryInfoHandler.Instance.manager.objNpcModel;
        GameObject objNpc      = Instantiate(transform.gameObject, objNpcModel);

        objNpc.transform.localPosition = new Vector3(itemData.position_x, itemData.position_y);
        listNpcObj.Add(objNpc);
        NpcAIStoryCpt aiNpc = objNpc.GetComponent <NpcAIStoryCpt>();
        CharacterBean characterData;

        if (itemData.npc_id == 0)
        {
            //使用自己的数据
            GameControlHandler.Instance.manager.GetControl <ControlForStoryCpt>(GameControlHandler.ControlEnum.Story).SetCameraFollowObj(objNpc);
            GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
            characterData = gameData.userCharacter;
        }
        else if (itemData.npc_id == -1)
        {
            // 使用妻子的数据
            GameDataBean   gameData   = GameDataHandler.Instance.manager.GetGameData();
            FamilyDataBean familyData = gameData.GetFamilyData();
            characterData = familyData.mateCharacter as CharacterBean;
        }
        else
        {
            characterData = NpcInfoHandler.Instance.manager.GetCharacterDataById(itemData.npc_id);
        }
        //设置编号
        objNpc.name = "character_" + itemData.num;
        CharacterBean copyCharacterData = ClassUtil.DeepCopyByBin <CharacterBean>(characterData);

        aiNpc.SetCharacterData(copyCharacterData);
        //默认设置NPC速度为1
        aiNpc.characterMoveCpt.SetMoveSpeed(1);
        return(aiNpc);
    }
Example #29
0
    public void HandleForNpcEquip(StoryInfoDetailsBean itemData)
    {
        //装备
        GameObject objItem = GetNpcByNpcNum(itemData.num);

        if (objItem != null)
        {
            NpcAIStoryCpt npcAIStory = objItem.GetComponent <NpcAIStoryCpt>();
            itemData.GetNpcEquip(npcAIStory.characterData.body.GetSex(), out long hatId, out long clothesId, out long shoesId);
            if (hatId != -1)
            {
                npcAIStory.characterData.equips.hatTFId = hatId;
            }
            if (clothesId != -1)
            {
                npcAIStory.characterData.equips.clothesTFId = clothesId;
            }
            if (shoesId != -1)
            {
                npcAIStory.characterData.equips.shoesTFId = shoesId;
            }
            npcAIStory.SetCharacterData(npcAIStory.characterData);
        }
    }
Example #30
0
    public void HandleForPropPosition(StoryInfoDetailsBean itemData)
    {
        //道具位置
        GameObject objProp = GetPropByNpcNum(itemData.num);

        if (objProp == null)
        {
            CreateProp(itemData);
        }
        else
        {
            CharacterMoveCpt characterMove = objProp.GetComponent <CharacterMoveCpt>();
            //如果可以移动
            if (characterMove)
            {
                characterMove.SetDestinationLocal(transform, new Vector3(itemData.position_x, itemData.position_y));
            }
            //如果不能移动则直接设置坐标
            else
            {
                objProp.transform.localPosition = new Vector3(itemData.position_x, itemData.position_y);
            }
        }
    }