void ShoutOut()
    {
        if (hit_sphere.activeSelf)
        {
            hit_sphere.SetActive(false);
            InAttackRange();
        }
        if (kinds != ArrowsKind.normal)
        {
            box.enabled = false;
        }
        controll.islunch = true;
        temp             = Vector3.Distance(leftrain.transform.position, rightrain.transform.position);
        //Debug.Log(bstatus.ToString() + "<<<<<<<<<<<<");
        if (rb != null)
        {
            rb.mass           = 0.2f;
            rb.angularDrag    = 0;
            rb.freezeRotation = true;

            switch (kinds)
            {
            case ArrowsKind.normal:
                if (temp < 0.15f)
                {
                    rb.AddForce(-bullet.transform.up * 10f);
                }
                else
                {
                    rb.AddForce(-bullet.transform.up * 1000f * (temp - 0.15f));
                }
                controll.endpos = arrowstop;
                break;

            case ArrowsKind.torch:
            case ArrowsKind.ice:

                rb.AddForce(-bullet.transform.up * 1000f);
                break;

            default:
                break;
            }
        }
        else
        {
            Debug.Log("withoutrigidbody");
        }

        status      = shootstatus.stay;
        bstatus     = bulletstatus.none;
        kinds       = ArrowsKind.normal;
        fire_status = firestatus.reday;
        if (fire != null && bullet != null)
        {
            fire.transform.SetParent(bullet.transform);
        }
        // Destroy(fire, 1f);
        isfireon = false; /*重置箭头火焰是否点着*/
    }
 void Awake()
 {
     kinds       = ArrowsKind.normal;
     status      = shootstatus.none;
     bstatus     = bulletstatus.none;
     fire_status = firestatus.reday;
     mask        = LayerMask.GetMask("Floor");
 }