protected override bool OnBeforeForEach()
        {
            if (!base.OnBeforeForEach())
            {
                return(false);
            }

            if (HasSingleton <InterFrame>())
            {
                interFrame = GetSingleton <InterFrame>();
            }

            return(m_LoadSuccess >= m_AnimationClips.Length);
        }
        protected override void PrepareValues()
        {
            for (var i = 0; i != m_AsyncOp.Handles.Count; i++)
            {
                var(handle, data) = DefaultAsyncOperation.InvokeExecute <AudioClip, HandleOpData>(m_AsyncOp, ref i);
                if (handle?.Result == null)
                {
                    continue;
                }
                SwitchAbilityAudio = handle.Result;
            }

            LocalPlayer = this.GetFirstSelfGamePlayer();

            if (HasSingleton <InterFrame>())
            {
                m_InterFrame = GetSingleton <InterFrame>();
            }
        }