void OnCollisionEnter(Collision collision)
    {
        if (GameCtrlXK.PlayerTran == null)
        {
            return;
        }

        if (IsBombShuiLei)
        {
            return;
        }

        if (LayerMask.LayerToName(collision.transform.gameObject.layer) == "Water" ||
            LayerMask.LayerToName(collision.transform.gameObject.layer) == "Terrain")
        {
            if (BulletState == NpcBulletState.BoLiPing)
            {
                IsBombShuiLei = true;
                ExplodeObj.transform.parent = GameCtrlXK.MissionCleanup;
                ExplodeObj.SetActive(true);
                AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioPingZiPoSui);

                //CameraShake.GetInstance().SetCameraShakeImpulseValue();
                //PlayerAutoFire.HandlePlayerHitShuiLei();
                Destroy(gameObject, 0.3f);
                return;
            }
        }

        if (collision.transform.root == GameCtrlXK.PlayerTran)
        {
            //Debug.Log("**************************** " + tr.name);
            IsBombShuiLei = true;
            ExplodeObj.transform.parent = GameCtrlXK.MissionCleanup;
            ExplodeObj.SetActive(true);

            switch (BulletState)
            {
            case NpcBulletState.ShuiLei:
                AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioShuiLeiBaoZha);
                pcvr.GetInstance().OnPlayerHitShake();
                break;

            case NpcBulletState.BoLiPing:
                AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioPingZiPoSui);
                break;
            }
            CameraShake.GetInstance().SetCameraShakeImpulseValue();
            PlayerAutoFire.HandlePlayerHitShuiLei();
            Destroy(gameObject, 0.3f);
        }
    }
    void CheckPlayerDistance()
    {
        if (GameCtrlXK.PlayerTran == null)
        {
            return;
        }

        if (IsBombShuiLei)
        {
            return;
        }

        Vector3 posA = GameCtrlXK.PlayerTran.position;
        Vector3 posB = tr.position;

        posA.y = posB.y = 0f;
        if (Vector3.Distance(posA, posB) < 5f)
        {
            IsBombShuiLei = true;
            ExplodeObj.transform.parent = GameCtrlXK.MissionCleanup;
            ExplodeObj.SetActive(true);

            switch (BulletState)
            {
            case NpcBulletState.ShuiLei:
                AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioShuiLeiBaoZha);
                pcvr.GetInstance().OnPlayerHitShake();
                break;

            case NpcBulletState.BoLiPing:
                AudioListCtrl.PlayAudio(AudioListCtrl.GetInstance().AudioPingZiPoSui);
                break;
            }
            CameraShake.GetInstance().SetCameraShakeImpulseValue();
            PlayerAutoFire.HandlePlayerHitShuiLei();
            Destroy(gameObject, 0.3f);
        }
    }