کد برای انیمیشن تایپ در یونیتی

2 ديدگاه

سلام دوستان در این پست این کد رو براتون میزارم که قبلا برای انیمیشن متن ساخته بودم که امیدوارم براتون مفید واقع بشه و این نکته رو هم خدمتتون عرض کنم که این کد برای چندسال پیشه برای بهینه تر شدن کد میتوانید بعد اتمام فرایند کلا اسکریپت رو غیر فعال کنید.

using UnityEngine;
using UnityEngine.UI;
public class TypeTextAnimation : MonoBehaviour
{
    [SerializeField] Text textBox;
    public bool IsDown = true;
    string fullText = " ";
    string textShownOnScreen;
    float wordsPerSecond = 5f; // speed of typewriter
    float timeElapsed = 0f;
    public void SetNewText(string txt)
    {
        fullText = txt;
        timeElapsed = 0;
        textBox.text = "";
        textShownOnScreen = "";
        IsDown = false;
    }
    private void LateUpdate()
    {
        if (IsDown == false)
        {
            timeElapsed += Time.deltaTime;
            textShownOnScreen = GetWords(fullText, timeElapsed * wordsPerSecond);
        }
    }
    private string GetWords(string text, float wordCount)
    {
        float words = wordCount;
        for (int i = 0; i < text.Length; i++)
        {
            words--;
            textBox.text = textShownOnScreen;
            if (words <= 0)
            {
                return text.Substring(0, i);
            }
        }
        IsDown = true;
        return text;
    }
}

j

2 ديدگاه

  1. Amirali

    سلام
    کد تایپ درست کار میکنه اما وقتی کاربرا بخوان با leomoon parsi negar یا leomoon farsi ttt فارسی بنویسن، چپکیشون میکنه. به نظرم میشد با کمک گرفتن از خاصیت آرایه وار متغیر های رشته ای، یه کد با همچین امکانی نوشت.
    البته قصد توهین نداشتم و اینو به عنوان یه نابلد گفتم ببینم میشه یا نه؛ اگه ناراحت شدید عذرخواهی میکنم!

    • salar

      سلام ,
      خواهش میکنم راحت باشید برای یاگرفتن باید سوال پرسید .
      این موردو تست نکردم ولی با توجه به کاری که نرم افزارهای فارسی ساز انجام میدن یعنی راست چین کردن متن , احتمالا میشه با برعکس کردن نحوه کار اسکریپت این موردو درست کرد.

نوشتن دیدگاه