Пример #1
0
        /// <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())
            ;
        }
Пример #2
0
 public int getTotalVisibleChars(bool forceMeshUpdate = true)
 {
     if (forceMeshUpdate)
     {
         textMeshProComponent.ForceMeshUpdate();
     }
     return(textMeshProComponent.GetParsedText().Length);
 }
Пример #3
0
        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);
        }