chenxin
2020-10-27 49f88e6493466a1723dd6b3967ff4c70f723db5d
Assets/Scripts/Guide/CharForeach.cs
@@ -12,18 +12,28 @@
    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");
    }
@@ -31,7 +41,52 @@
    {
        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();
@@ -40,14 +95,51 @@
    }
    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();