/// <summary>
 /// 文字送りアニメーションデータの要素と絶対時間から何文字目までWaveしているか算出
 /// </summary>
 static private int CalcAnimationCharacterCount(float time, TextMeshProGeometryAnimation.ItemBase item)
 {
     if (item.wave <= 0.0f)
     {
         return(int.MaxValue);
     }
     return((int)((time - item.delay) / item.wave));
 }
 /// <summary>
 /// 文字送りアニメーションデータの要素の特定文字の相対時間を算出
 /// </summary>
 static private float CalcAnimationTime(float time, int characterIndex, TextMeshProGeometryAnimation.ItemBase item)
 {
     if (time < item.delay)
     {
         return(0.0f);
     }
     if (item.time <= 0.0f)
     {
         return(1.0f);
     }
     return(Mathf.Clamp01(((time - item.delay) - (characterIndex * item.wave)) / item.time));
 }
 /// <summary>
 /// 文字送りアニメーションデータの要素の最大時間を算出
 /// </summary>
 static private float CalcAnimationTotalTime(int characterCount, TextMeshProGeometryAnimation.ItemBase item)
 {
     if (characterCount <= 0)
     {
         return(0.0f);
     }
     if (item == null)
     {
         return(0.0f);
     }
     if (!item.use)
     {
         return(0.0f);
     }
     return(item.delay + (characterCount - 1) * item.wave + item.time);
 }