void OnCompelteMovePathEnd()
    {
        Invoke("HiddenLiZiObj", 0.3f);
        if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
        {
            NengLiangQuanCtrl.GetInstance().MoveNengLiangQuanToEnd(DaoJuTypeIndex.shenXingState);

            /*WaterwheelPlayerCtrl.GetInstance().ActiveShenXingState(); //Player ShenXingState
             * NengLiangTiaoCtrl.GetInStance().StartPlayNengLiangTiao();*/
        }
    }
    void CloseHuanYingFuState()
    {
        PlayerZhuanXiangVal = GameCtrlXK.PlayerZhuanXiangPTVal;
        if (!IsActiveHuanYingFu)
        {
            return;
        }
        CancelInvoke("CloseHuanYingFuState");
        NengLiangQuanCtrl.GetInstance().MoveNengLiangQuanToStart(DaoJuTypeIndex.huanYingFu);
        CameraShake.GetInstance().SetRadialBlurActive(false, CameraShake.BlurStrengthHuanYingFu);
        CameraShake.GetInstance().SetIsActiveHuanYingFu(false);

        if (!IsActiveShenXingMode)
        {
            XingXingCtrl.IsPlayerCanHitNPC          = true;
            PlayerAutoFire.IsActivePlayerForwardHit = false;
            PlayerBoxColObj.layer = LayerMask.NameToLayer("Default");
            HuanYingFuObj.SetActive(false);
        }
        IsActiveHuanYingFu = false;
        HuanYingFengXiaoObj.SetActive(false);
        ActiveDaJuCtrl.SetTypeDaoJuList((int)DaoJuTypeIndex.huanYingFu, 0);
        GameCtrlXK.GetInstance().ActivePlayerDaoJuType((int)DaoJuTypeIndex.Close);
    }
    IEnumerator UpdateNengLiangTiao()
    {
        while (true)
        {
            Offset += Speed;
            if (Offset >= NengLiangEndVal || IsStopNengLiangTeXiao)
            {
                IsStartPlay = false;
                gameObject.SetActive(false);
                ChuanNengLiangGTX.SetActive(false);
                NengLiangBeiJing.SetActive(true);
                NengLiangLiZiTXCtrl.GetInstance().MoveLiZiToPathStart();
                NengLiangQuanCtrl.GetInstance().MoveNengLiangQuanToStart(DaoJuTypeIndex.shenXingState);

                if (GlobalData.GetInstance().gameMode == GameMode.SoloMode)
                {
                    WaterwheelPlayerCtrl.GetInstance().CloseShenXingState();
                }
                break;
            }
            NengLiangTiao.materials[0].SetTextureOffset("_MainTex", new Vector2(Offset, 0f));
            yield return(new WaitForSeconds(DTime));
        }
    }
    ///<summary>
    /// player hit obj key -> 0, player shooting obj key -> 1
    ///</summary>
    void HandleHitShootObj(GameObject obj, int key)
    {
        switch (obj.tag)
        {
        case "TengManObj":
            if (key == 0)
            {
                TengManInfoCtrl.GetInstance().ShowTengManInfo();
            }
            break;

        case "FuBingObj":
            if (key == 0)
            {
                ActiveIsHitFuBingObj();
            }
            break;

        case "IntoBingLu":
            if (key == 0)
            {
                ActiveBingLuTrigger();
            }
            break;

        case "OutBingLu":
            if (key == 0)
            {
                CloseBingLuTrigger();
            }
            break;

        case "HuanWeiFuObj":
            ActiveDaJuCtrl.SetTypeDaoJuList((int)DaoJuTypeIndex.huanWeiFu, 1);
            GameCtrlXK.GetInstance().ActivePlayerDaoJuType((int)DaoJuTypeIndex.huanWeiFu);
            ShowDaoJuExplosion(obj);
            HitHuanWeiFuObj();
            break;

        case "HuanYingFuObj":
            ActiveDaJuCtrl.SetTypeDaoJuList((int)DaoJuTypeIndex.huanYingFu, 1);
            GameCtrlXK.GetInstance().ActivePlayerDaoJuType((int)DaoJuTypeIndex.huanYingFu);
            ShowDaoJuExplosion(obj);
            NengLiangQuanCtrl.GetInstance().MoveNengLiangQuanToEnd(DaoJuTypeIndex.huanYingFu);
            DaoJuTiShiCtrl.GetInstance().ShowDaoJuTiShi(DaoJuState.HuanYingFu);
            PlayerZhuanXiangVal = GameCtrlXK.PlayerZhuanXiangJSVal;
            break;

        case "JuLiFuObj":
            ActiveDaJuCtrl.SetTypeDaoJuList((int)DaoJuTypeIndex.juLiFu, 1);
            GameCtrlXK.GetInstance().ActivePlayerDaoJuType((int)DaoJuTypeIndex.juLiFu);
            ShowDaoJuExplosion(obj);
            ActiveJuLiFuState();
            DaoJuTiShiCtrl.GetInstance().ShowDaoJuTiShi(DaoJuState.JuLiFu);
            break;

        case "DianDaoFuObj":
            ActiveDaJuCtrl.SetTypeDaoJuList((int)DaoJuTypeIndex.dianDaoFu, 1);
            GameCtrlXK.GetInstance().ActivePlayerDaoJuType((int)DaoJuTypeIndex.dianDaoFu);
            ShowDaoJuExplosion(obj);
            HitDianDaoFuObj();
            break;

        case "DingShenFuObj":
            ActiveDaJuCtrl.SetTypeDaoJuList((int)DaoJuTypeIndex.dingShenFu, 1);
            GameCtrlXK.GetInstance().ActivePlayerDaoJuType((int)DaoJuTypeIndex.dingShenFu);
            ShowDaoJuExplosion(obj);
            HitDingShenFuObj();
            break;
        }
    }