/// <summary>
 /// 初期化処理
 /// </summary>
 /// <param name="music">再生楽曲情報</param>
 void Setup(MusicParamObject music)
 {
     musicParam  = music;
     audioEntity = audioPool.Rent();
     audioSource = audioEntity.audioSource;
     if (audioSource == null)
     {
         Debug.LogError("null source");
     }
 }
    /// <summary>
    /// 再生開始
    /// </summary>
    /// <param name="music">再生楽曲情報</param>
    /// <param name="Immediately">即時再生開始するか</param>
    public void Play(MusicParamObject music, bool Immediately = false)
    {
        Setup(music);
        audioSource.clip = music.musicClip;
        audioSource.outputAudioMixerGroup = music.outputMixerGroup;
        audioSource.Play();
        if (Immediately)
        {
            return;
        }
        var curve    = music.attackCCurve;
        var timespan = music.attackTime;

        //fadein
        attackSubscripion = FadeVolume(curve, timespan, () => { });
    }