/// <summary> /// 演出を再生します /// </summary> /// <param name="text">表示するテキスト ( リッチテキスト対応 )</param> /// <param name="speed">表示する速さ ( speed == 1 の場合 1 文字の表示に 1 秒、speed == 2 の場合 0.5 秒かかる )</param> /// <param name="onComplete">演出完了時に呼び出されるコールバック</param> public void Play(string text, float speed, Action onComplete) { m_textUI.text = text; m_onComplete = onComplete; m_textUI.ForceMeshUpdate(); m_parsedText = m_textUI.GetParsedText(); var length = m_parsedText.Length; var duration = 1 / speed * length; OnUpdate(0); if (m_tween != null) { m_tween.Kill(); } m_tween = DOTween .To(value => OnUpdate(value), 0, 1, duration) .SetEase(Ease.Linear) .OnComplete(() => OnComplete()) ; }
public int getTotalVisibleChars(bool forceMeshUpdate = true) { if (forceMeshUpdate) { textMeshProComponent.ForceMeshUpdate(); } return(textMeshProComponent.GetParsedText().Length); }
private string GameObjectText() { TMP_Text tmpText = gameObject.GetComponent <TMP_Text>(); if (tmpText) { return(tmpText.GetParsedText()); } TextMeshProUGUI tmpUIText = gameObject.GetComponent <TextMeshProUGUI>(); if (tmpUIText) { return(tmpUIText.GetParsedText()); } Text text = gameObject.GetComponent <Text>(); if (text) { return(text.text); } return(null); }