chenxin
2020-11-06 a4c64bb18f6d754d3f1bc3785d83356cc0aef68c
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()
    {
        text = transform.Find("Scroll View/Viewport/Content/Text").GetComponent<Text>();
        //contentRect = transform.Find("Scroll View/Viewport/Content").GetComponent<RectTransform>();
        //offsetV = new Vector2(0, 20);
        text = transform.Find("Text").GetComponent<Text>();
    }
    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,57 @@
    {
        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 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();
@@ -40,14 +100,56 @@
    }
    //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 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();