lcy
20 小时以前 9cc637d88bdce6fba8363f06da16d47a0de25b64
Main/System/Battle/ArenaBattleWin.cs
@@ -47,6 +47,7 @@
    {
        base.OnPreOpen();
        MainWin.TabChangeEvent += OnTabChangeEvent;
        UIManager.Instance.OnOpenWindow += OnOpenWindow;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 130 : 0, 0);
        if (isOpenBattleChangeTab)
@@ -57,12 +58,14 @@
        {
            UIManager.Instance.CloseWindow<MainWin>();
        }
        isClickSkip = false;
    }
    protected override void OnPreClose()
    {
        base.OnPreClose();
        MainWin.TabChangeEvent -= OnTabChangeEvent;
        UIManager.Instance.OnOpenWindow -= OnOpenWindow;
        bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
        if (isOpenBattleChangeTab)
        {
@@ -72,8 +75,51 @@
        {
            UIManager.Instance.OpenWindow<MainWin>();
        }
        if (isClickSkip)
        {
            isClickSkip = false;
            TryPass();
        }
    }
    void OnOpenWindow(UIBase win)
    {
        if (win is ArenaBattleVictoryWin || win is ArenaBattleFailWin)
        {
            isClickSkip = false;
        }
    }
    bool isClickSkip = false;
    protected override void OnClickPass()
    {
        if (!IsPass())
            return;
        isClickSkip = true;
        clickTime = Time.time;  // 记录点击时间
        battleField.ForceFinish();
    }
    float stayTime = 2f;
    float clickTime = 0f;
    void LateUpdate()
    {
        if (isClickSkip && Time.time - clickTime >= stayTime)
        {
            isClickSkip = false;
            TryPass();
        }
    }
    private void TryPass()
    {
        if (UIManager.Instance.IsOpened<ArenaBattleVictoryWin>() ||
            UIManager.Instance.IsOpened<ArenaBattleFailWin>())
            return;
        CloseWindow();
        Debug.LogError($"OnBattleEnd 异常关闭");
        BattleSettlementManager.Instance.WinShowOver(BattleConst.ArenaBattleField);
    }
    private void OnTabChangeEvent()
    {
        UIManager.Instance.CloseWindow<ArenaBattleWin>();