public void SetActiveState(bool active)
    {
        if (active)
        {
            if (null == m_Audio)
            {
                m_Audio = AudioManager.instance.Create(transform.position, m_SoundID, transform, true, false);
                if (null != m_Audio)
                {
                    m_Audio.SetVolume(0);
                    m_Audio.SetVolume(1, 0.5f);
                }
            }

            if (null == m_Effect)
            {
                m_Effect = new ControllableEffect(m_EffectID, transform);
            }
        }
        else
        {
            if (null != m_Audio)
            {
                m_Audio.StopAudio(1f);
                m_Audio.Delete(1.1f);
                m_Audio = null;
            }

            if (null != m_Effect)
            {
                m_Effect.Destory();
                m_Effect = null;
            }
        }
    }
 public override void DeactiveSheild()
 {
     base.DeactiveSheild();
     SetDefenceState(false);
     if (IsInvoking("PlayStartEffect"))
     {
         CancelInvoke("PlayStartEffect");
     }
     if (null != m_StartEffect)
     {
         m_StartEffect.Destory();
         m_StartEffect = null;
     }
     Invoke("PlayEndEffect", m_EndEffectDelayTime);
 }
 void OnDestroy()
 {
     if (null != m_Effect)
     {
         m_Effect.Destory();
         m_Effect = null;
     }
 }