/// <summary>
    /// 获取技能释放,子阶段数据
    /// </summary>
    /// <param name="skillId"></param>
    /// <param name="childIndex"></param>
    /// <returns></returns>
    public SkillReleaseChildData GetSkillReleaseChildData(int skillId, int childIndex = 0)
    {
        SkillReleaseStageData stageData = GetSkillReleaseStageData(skillId);
        SkillReleaseChildData?childData = stageData.Childs(childIndex);

        Assert.IsTrue(childData.HasValue, $"CfgEternityProxy::GetSkillReleaseChildData->data not exist skillId.id =  {skillId},index = {childIndex}");

        return(childData.Value);
    }
        protected override TrackGroup GetTrackGroup(out float timeScale)
        {
            SkillRunningData runningData = Context.GetObject <SkillRunningData>();
            SkillData        skillData   = Context.GetObject <SkillData>();

            int stageIndex = runningData.ReleaseStageIndex;

            SkillReleaseStageData stageData = skillData.ReleaseStageData.Value;

            if (stageData.IsScaleByTime)
            {
                timeScale = runningData.TimeScaleRate;
            }
            else
            {
                timeScale = 1.0f;
            }
            return(stageData.Childs(stageIndex).Value.Group.Value);
        }