| | |
| | | private Text text; |
| | | public delegate void CallBack(); |
| | | private Action callBack; |
| | | |
| | | RectTransform contentRect; |
| | | |
| | | Vector2 offsetV; |
| | | void Awake() |
| | | { |
| | | contentRect = transform.Find("Scroll View/Viewport/Content").GetComponent<RectTransform>(); |
| | | text = transform.Find("Scroll View/Viewport/Content/Text").GetComponent<Text>(); |
| | | offsetV = new Vector2(0, 20); |
| | | } |
| | | |
| | | public void StartShowWord(string str, Action cb) |
| | | { |
| | | Debug.Log("StartShowWord"+str); |
| | | Debug.Log("StartShowWord" + str); |
| | | |
| | | word = str; |
| | | text.text = ""; |
| | | callBack = cb; |
| | | if (contentRect.anchoredPosition.y != 0) |
| | | { |
| | | contentRect.anchoredPosition = Vector2.zero; |
| | | } |
| | | StartCoroutine("TypeText"); |
| | | } |
| | | |
| | |
| | | { |
| | | Debug.Log("ShowWordImmediately"); |
| | | StopCoroutine("TypeText"); |
| | | text.text = word; |
| | | 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 |
| | | { |
| | | 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(); |
| | |
| | | |
| | | } |
| | | |
| | | int length = 0; |
| | | private IEnumerator TypeText() |
| | | { |
| | | foreach (char letter in word.ToCharArray()) |
| | | char[] charArray = word.ToCharArray(); |
| | | length = 0; |
| | | for (int i = 0; i < charArray.Length; i++) |
| | | { |
| | | text.text += letter; |
| | | 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 |
| | | { |
| | | 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(); |