private BulletBase GetBullet()
    {
        BulletBase bullet = null;

        if (m_cacheBullet.Count > 0)
        {
            bullet = m_cacheBullet[0];
            m_cacheBullet.Remove(bullet);
        }
        else
        {
            bullet = Instantiate(m_template);
            bullet.BulletOnInit(HandleBulletDisable, HandleBulletEnable);
        }

        bullet.transform.position = m_fireNode.transform.position;
        return(bullet);
    }