示例#1
0
    /// <summary>
    /// 点击退出设置按钮
    /// </summary>
    public void ExitSetting_Click()
    {
        if (nowUIFocus)
        {
            nowUIFocus.LostForcus();
        }
        bigMapOperateState = EnumBigMapOperateState.OperateMap;
        //根据当前的设置更新状态
        UIFocusDropdown thisFocus = uiFocusPath.NewUIFocusArray.Where(temp => string.Equals(temp.Tag, "SceneDropDown")).FirstOrDefault() as UIFocusDropdown;

        if (thisFocus != null)
        {
            int index = thisFocus.dropdown.value;
            if (index >= 0)
            {
                SceneData       sceneData       = DataCenter.Instance.GetMetaData <SceneData>();
                SceneDataInfo[] sceneDataInfos  = sceneData.GetAllSceneData();
                List <string>   sceneNameList   = sceneDataInfos.Where(temp => temp.SceneAction == EnumSceneAction.Game).Select(temp => temp.SceneName).ToList();
                string          selectSceneName = sceneNameList[index];
                if (!string.Equals(nowSceneName, selectSceneName))//当前地图显示的和选择的场景不一致则重新载入
                {
                    MapData     mapData     = DataCenter.Instance.GetMetaData <MapData>();
                    MapDataInfo mapDataInfo = mapData[selectSceneName];
                    if (mapDataInfo != null)
                    {
                        mapDataInfo.Load();
                        PlayerState playerState   = DataCenter.Instance.GetEntity <PlayerState>();
                        Sprite      mapMaskSprite = playerState.GetSceneMapMaskSprite(selectSceneName, mapDataInfo.MapSprite);
                        ResetMap(mapDataInfo.MapSprite, mapMaskSprite, mapDataInfo.SceneRect, selectSceneName);
                    }
                }
            }
        }
    }
示例#2
0
    /// <summary>
    /// 控件激活时
    /// </summary>
    private void OnEnable()
    {
        fisrtKeyUP    = false;
        iGameState    = GameState.Instance.GetEntity <IGameState>();
        iPlayerState  = GameState.Instance.GetEntity <IPlayerState>();
        iMapState     = GameState.Instance.GetEntity <IMapState>();
        iNowTaskState = GameState.Instance.GetEntity <INowTaskState>();
        npcData       = DataCenter.Instance.GetMetaData <NPCData>();
        PlayerState playerState = DataCenter.Instance.GetEntity <PlayerState>();

        playerState.UpdateMapMaskData(iGameState.SceneName);
        runTimeTasksData = DataCenter.Instance.GetEntity <RuntimeTasksData>();
        UIManager.Instance.KeyUpHandle    += Instance_KeyUpHandle;
        UIManager.Instance.KeyPressHandle += Instance_KeyPressHandle;
        bigMapOperateState = EnumBigMapOperateState.OperateMap;
        showSettingPanel.gameObject.SetActive(false);
        ResetSceneDropDown();
        //ResetMap(iMapState.MapBackSprite, iMapState.MaskMapSprite, iMapState.MapRectAtScene, iGameState.SceneName);
        StartCoroutine(NextFrameInit());
        //判断是否是点击路牌打开的该界面.如果是才可以传送
        IInteractiveState iInteractiveState = GameState.Instance.GetEntity <IInteractiveState>();
        NPCDataInfo       npcDataInfo       = npcData.GetNPCDataInfo(iGameState.SceneName, iInteractiveState.ClickInteractiveNPCID);

        if (npcDataInfo != null && npcDataInfo.NPCType == EnumNPCType.Street)
        {
            canTransport = true;
        }
        else
        {
            canTransport = false;
        }
    }
示例#3
0
    /// <summary>
    /// 按键检测(功能键)
    /// </summary>
    /// <param name="keyType"></param>
    /// <param name="rockValue"></param>
    private void Instance_KeyUpHandle(UIManager.KeyType keyType, Vector2 rockValue)
    {
        if (!fisrtKeyUP)
        {
            fisrtKeyUP = true;
            return;
        }
        switch (bigMapOperateState)
        {
        case EnumBigMapOperateState.OperateMap:    //操作地图
            switch (keyType)
            {
            case UIManager.KeyType.A:
                Vector2 handlePos = uiMapControl.GetHandlePosInTerrain();
                ActionAtTerrain(handlePos);
                break;

            case UIManager.KeyType.Y:
                bigMapOperateState = EnumBigMapOperateState.CheckSetting;
                showSettingPanel.gameObject.SetActive(true);
                if (uiFocusPath)
                {
                    nowUIFocus = uiFocusPath.GetFirstFocus();
                }
                if (nowUIFocus)
                {
                    nowUIFocus.SetForcus();
                }
                break;
            }
            break;

        case EnumBigMapOperateState.CheckSetting:    //操作设置
            if (!nowUIFocus)
            {
                if (uiFocusPath)
                {
                    nowUIFocus = uiFocusPath.GetFirstFocus();
                }
            }
            if (nowUIFocus)
            {
                Action <UIFocusPath.MoveType> MoveUIFocusAction = (moveType) =>
                {
                    UIFocus nextUIFocus = uiFocusPath.GetNewNextFocus(nowUIFocus, moveType);    //uiFocusPath.GetNextFocus(nowUIFocus, moveType);
                    if (nextUIFocus != null)
                    {
                        nowUIFocus.LostForcus();
                        nowUIFocus = nextUIFocus;
                        nowUIFocus.SetForcus();
                    }
                };
                switch (keyType)
                {
                case UIManager.KeyType.A:
                    if (nowUIFocus.GetType().Equals(typeof(UIFocusButton)))
                    {
                        ((UIFocusButton)nowUIFocus).ClickThisButton();
                    }
                    else if (nowUIFocus.GetType().Equals(typeof(UIFocusToggle)))
                    {
                        ((UIFocusToggle)nowUIFocus).MoveChild(UIFocusPath.MoveType.OK);
                    }
                    break;

                case UIManager.KeyType.B:
                    ExitSetting_Click();
                    break;

                case UIManager.KeyType.LEFT:
                    MoveUIFocusAction(UIFocusPath.MoveType.LEFT);
                    break;

                case UIManager.KeyType.RIGHT:
                    MoveUIFocusAction(UIFocusPath.MoveType.RIGHT);
                    break;

                case UIManager.KeyType.UP:
                case UIManager.KeyType.DOWN:
                    if (string.Equals(nowUIFocus.Tag, "SceneDropDown"))
                    {
                        UIFocusDropdown uiFocusDropDown = nowUIFocus as UIFocusDropdown;
                        if (uiFocusDropDown != null)
                        {
                            uiFocusDropDown.MoveChild(keyType == UIManager.KeyType.UP ? UIFocusPath.MoveType.UP : UIFocusPath.MoveType.DOWN);
                        }
                    }
                    break;
                }
            }
            break;
        }
    }