void InitMoveBullet(NpcSimpleBullet bulletScript)
    {
        //Debug.Log("********InitMoveBullet");
        Rigidbody rigObj  = bulletScript.GetComponent <Rigidbody>();
        Transform TranCam = Camera.main.transform;
        Vector3   vecDir  = Vector3.Lerp(TranCam.forward, Vector3.up, 0.2f);

        rigObj.AddForce(vecDir * 10f, ForceMode.Impulse);
    }
    void OnMouseFireActive()
    {
        //Debug.Log("OnMouseFireActive**********");
        //		if(NpcSimpleBulletObj == null)
        //		{
        //			return;
        //		}

        NpcSimpleBullet bulletScript = NpcSimpleBulletObj.GetComponent <NpcSimpleBullet>();

        if (bulletScript == null)
        {
            if (AnimatorNpc.GetBool("IsFire_1"))
            {
                /*if (AudioNpcFire_1 != null) {
                 *      AudioListCtrl.PlayAudio( AudioNpcFire_1 );
                 * }*/
                PlayNpcAudio(AudioNpcFireObj_1);
            }
            else
            {
                /*if (AudioNpcFire_2 != null) {
                 *      AudioListCtrl.PlayAudio( AudioNpcFire_2 );
                 * }*/
                PlayNpcAudio(AudioNpcFireObj_2);
            }
        }
        else
        {
            switch (bulletScript.BulletState)
            {
            case NpcBulletState.BoLiPing:
            case NpcBulletState.ShuiLei:
                break;

            default:
                if (AnimatorNpc.GetBool("IsFire_1"))
                {
                    /*if (AudioNpcFire_1 != null) {
                     *      AudioListCtrl.PlayAudio( AudioNpcFire_1 );
                     * }*/
                    PlayNpcAudio(AudioNpcFireObj_1);
                }
                else
                {
                    /*if (AudioNpcFire_2 != null) {
                     *      AudioListCtrl.PlayAudio( AudioNpcFire_2 );
                     * }*/
                    PlayNpcAudio(AudioNpcFireObj_2);
                }
                break;
            }
        }

        if (IsTeShuZiDanHaiDao)
        {
            GameObject haiDanQiangHuo = (GameObject)Instantiate(NpcSimpleBulletObj, SpawnBulletTran.position, SpawnBulletTran.rotation);
            Transform  qiangHuoTran   = haiDanQiangHuo.transform;
            qiangHuoTran.parent = GameCtrlXK.MissionCleanup;

            /*NpcSimpleBulletObj.SetActive(false);
             * if (!IsInvoking("DelayActiveNpcSimpleBulletObj")) {
             *      Invoke("DelayActiveNpcSimpleBulletObj", 0.1f);
             * }*/
            return;
        }

        Vector3 vecA = Camera.main.transform.position - ZaiTiNpcTran.position;
        Vector3 vecB = Camera.main.transform.forward;

        vecA.y = vecB.y = 0f;
        if (Vector3.Dot(vecA, vecB) > 0f)
        {
            return;
        }

        Vector3 startPos = SpawnBulletTran.position;
        Vector3 endPos   = Camera.main.transform.position;

        vecA   = ZaiTiNpcTran.position - WaterwheelPlayer.position;
        vecA.y = vecB.y = 0f;
        if (Random.Range(0, 100) > 50 || Vector3.Dot(vecA, vecB) < 0.866f)
        {
            endPos = WaterwheelPlayer.position + Vector3.up * 1.5f;
        }

        float   distance   = Vector3.Distance(startPos, endPos);
        Vector3 forwardVec = endPos - startPos;

        forwardVec = forwardVec.normalized;

        RaycastHit hitInfo;

        Physics.Raycast(startPos, forwardVec, out hitInfo, distance, GameCtrlXK.GetInstance().NpcAmmoHitLayer.value);
        if (hitInfo.collider != null)
        {
            endPos = hitInfo.point;
        }
        GameObject ammo     = (GameObject)Instantiate(NpcSimpleBulletObj);
        Transform  ammoTran = ammo.transform;

        ammoTran.parent   = GameCtrlXK.MissionCleanup;
        ammoTran.position = startPos;
        ammoTran.forward  = forwardVec;

        bulletScript = ammo.GetComponent <NpcSimpleBullet>();
        if (bulletScript == null)
        {
            bulletScript.gameObject.name = "null";
            return;
        }

        switch (bulletScript.BulletState)
        {
        case NpcBulletState.BoLiPing:
        case NpcBulletState.ShuiLei:
            InitMoveBullet(bulletScript);
            CloseFireAction();
            break;
        }
        bulletScript.dist = Vector3.Distance(startPos, endPos);
    }