/// <summary> /// 暂停游戏 /// <para>pauseState 暂停界面的状态</para> /// </summary> /// <param name="pauseState"></param> private void PauseGame(ePauseViewState pauseState) { UIManager.GetInstance().ShowView(WindowName.STGPauseView, pauseState); Global.IsPause = true; SoundManager.GetInstance().PauseAllSTGSound(); CommandManager.GetInstance().RunCommand(CommandConsts.PauseGame); }
protected override void OnShow(object data) { _isShowAniFinish = false; _state = StatePause; // 隐藏yesno面板 _yesNoPanel.SetActive(false); _pauseState = data == null ? 0 : (ePauseViewState)data; InitAvailableItems(_pauseState); PlayShowAni(); SoundManager.GetInstance().Play("se_pause", Consts.DefaultUISEVolume, false, false); UIManager.GetInstance().RegisterViewUpdate(this); }
/// <summary> /// 界面打开时根据状态来显示不同的item /// <para>0 普通暂停</para> /// <para>1 stage all clear之后的暂停</para> /// <para>2 播放录像时的暂停</para> /// <para>3 录像播放完毕之后的暂停</para> /// </summary> /// <param name="state"></param> private void InitAvailableItems(ePauseViewState state) { _availableIndex = 0; if (state == ePauseViewState.PauseInGame) { _itemImgList[0].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgPause"); _itemImgList[1].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgReturnToGame"); _availableIndex |= 1 << 0; _availableIndex |= 1 << 1; _availableIndex |= 1 << 2; _availableIndex |= 1 << 3; _showItemCount = 4; } else if (state == ePauseViewState.PauseAfterGameClear) { _itemImgList[0].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgPause"); _itemImgList[1].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgReturnToGame"); _availableIndex |= 1 << 1; if (ReplayManager.GetInstance().IsReplayEnable()) { _availableIndex |= 1 << 2; } _availableIndex |= 1 << 3; _showItemCount = 4; } else if (state == ePauseViewState.PauseInReplay) { _itemImgList[0].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgPause"); _itemImgList[1].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgReturnToGame"); _availableIndex |= 1 << 0; _availableIndex |= 1 << 1; _availableIndex |= 1 << 3; _showItemCount = 4; } else if (state == ePauseViewState.PauseAfterReplayFinished) { _itemImgList[0].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgPause"); _itemImgList[1].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgReturnToGame"); _availableIndex |= 1 << 1; _availableIndex |= 1 << 3; _showItemCount = 4; } else if (state == ePauseViewState.PauseAfterGameOver) { _itemImgList[0].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgGameOver"); _itemImgList[1].sprite = ResourceManager.GetInstance().GetSprite("STGPauseViewAtlas", "ImgContinue"); _availableIndex |= 1 << 0; _availableIndex |= 1 << 1; if (ReplayManager.GetInstance().IsReplayEnable()) { _availableIndex |= 1 << 2; } _availableIndex |= 1 << 3; _showItemCount = 4; } _availableList = new List <int>(); Image img; RectTransform tf; for (int i = 0; i < _showItemCount; i++) { tf = _selectItems[i].GetComponent <RectTransform>(); img = tf.GetComponent <Image>(); tf.anchoredPosition = new Vector2(2000, 2000); if ((_availableIndex & (1 << i)) != 0) { img.color = new Color(1, 1, 1, 1); _availableList.Add(i); } else { img.color = new Color(1, 1, 1, 0.3f); } } _availableCount = _availableList.Count; }