/// <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); }