using System;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
///
/// 播放文字脚本
///
public class CharForeach : MonoBehaviour
{
public float letterPause = 1f;
private string word;
private Text text;
public delegate void CallBack();
private Action callBack;
//RectTransform contentRect;
//Vector2 offsetV;
void Awake()
{
//contentRect = transform.Find("Scroll View/Viewport/Content").GetComponent();
//offsetV = new Vector2(0, 20);
text = transform.Find("Text").GetComponent();
}
public void StartShowWord(string str, Action cb)
{
//Debug.Log("StartShowWord" + str);
word = str;
text.text = "";
callBack = cb;
// if (contentRect.anchoredPosition.y != 0)
// {
// contentRect.anchoredPosition = Vector2.zero;
// }
StartCoroutine("TypeText");
}
public void ShowWordImmediately()
{
// Debug.Log("ShowWordImmediately");
StopCoroutine("TypeText");
text.text = "";
char[] charArray = word.ToCharArray();
//length = 0;
for (int i = 0; i < charArray.Length; i++)
{
if (charArray[i].Equals('$'))
{
text.text += GuideConfig.showWordsUBB[0];
//length += 19;
}
else if (charArray[i].Equals('%'))
{
//length += 19;
text.text += GuideConfig.showWordsUBB[1];
}
else if (charArray[i].Equals('`'))
{
//length += 23;
text.text += GuideConfig.showWordsUBB[2];
}
else if (charArray[i].Equals('&'))
{
//length += 19;
text.text += GuideConfig.showWordsUBB[3];
}
else if (charArray[i].Equals('*'))
{
//length += 23;
text.text += GuideConfig.showWordsUBB[4];
}
else if (charArray[i].Equals('<'))
{
//length += 23;
text.text += GuideConfig.showWordsUBB[5];
}
else
{
text.text += charArray[i];
}
}
//text.text = word;
// if (text.text.Length - length >= 39 && contentRect.anchoredPosition != offsetV)
// {
// contentRect.anchoredPosition = offsetV;
// }
// else
// {
// contentRect.anchoredPosition = Vector2.zero;
// }
if (callBack != null)
{
callBack();
callBack = null;
}
}
//int length = 0;
private IEnumerator TypeText()
{
char[] charArray = word.ToCharArray();
//length = 0;
for (int i = 0; i < charArray.Length; i++)
{
if (charArray[i].Equals('$'))
{
text.text += GuideConfig.showWordsUBB[0];
//length += 19;
}
else if (charArray[i].Equals('%'))
{
//length += 19;
text.text += GuideConfig.showWordsUBB[1];
}
else if (charArray[i].Equals('`'))
{
//length += 23;
text.text += GuideConfig.showWordsUBB[2];
}
else if (charArray[i].Equals('&'))
{
//length += 19;
text.text += GuideConfig.showWordsUBB[3];
}
else if (charArray[i].Equals('*'))
{
//length += 23;
text.text += GuideConfig.showWordsUBB[4];
}
else if (charArray[i].Equals('<'))
{
//length += 23;
text.text += GuideConfig.showWordsUBB[5];
}
else
{
text.text += charArray[i];
}
// if (text.text.Length - length >= 39 && contentRect.anchoredPosition != offsetV)
// {
// contentRect.anchoredPosition = offsetV;
// }
yield return new WaitForSeconds(letterPause);
}
if (callBack != null)
{
callBack();
callBack = null;
}
}
}