유닛에 소설 게임처럼 한 글자 한 글자 보여주세요.

4527 단어 UnityC#
안녕하세요. 이번에는 제목대로 소설 놀이처럼 글자를 한 글자 한 글자 표시하는 간단한 방법을 설명해 드리겠습니다.
이번에는 진짜 문자만 보내면 중간에 끊기고 색깔, 사이즈 변경 등은 당분간 설명을 고려하지 않는다.

차리다


준비할 정도는 아니지만 캔버스와 여기에 텍스 컴포니트가 있는 대상만 있으면 충분하다.

코드


NovelScript.cs
    [SerializeField] List<string> messageList = new List<string>();//会話文リスト
    [SerializeField] Text text;
    [SerializeField] float novelSpeed;//一文字一文字の表示する速さ
    int novelListIndex = 0; //現在表示中の会話文の配列

    void Start () {
        StartCoroutine(Novel());
    }


    private IEnumerator Novel()
    {
        int messageCount = 0; //現在表示中の文字数
        text.text = ""; //テキストのリセット
        while (messageList[novelListIndex].Length > messageCount)//文字をすべて表示していない場合ループ
        {
            text.text += messageList[novelListIndex][messageCount];//一文字追加
            messageCount++;//現在の文字数
            yield return new WaitForSeconds(novelSpeed);//任意の時間待つ
        }

        novelListIndex++; //次の会話文配列
        if (novelListIndex < messageList.Count)//全ての会話を表示したか
        {
            StartCoroutine(Novel());
        }
    }
그게 다야.
코르크 내부에 문자를 표시하고 모든 문자를 표시한 후 다음 대화를 진행하는 것은 매우 간단하다.
이것을 임의의 대상에 추가합니다.
이번 설정은 다음과 같다.

3개의 대화, 실제 Text, 한 글자 한 글자 속도
이것들을 입력하고 실제로 이동하면 소설 놀이처럼 문자를 표시할 수 있다.

주의


이번에는 정말 간단한 글자로 표시된 것을 만들었다.
이번 문제점으로.
・ 임의의 시기에 다음 대화로 이동할 수 없습니다.
· 멈출 수 없습니다.
• 대화를 취소할 수 없습니다.
잠깐만요. 문제가 많아요.
만약 시간이 있다면 다음에 나는 상술한 문제의 해결 방법을 쓰고 싶다.
이상
와주셔서 감사합니다.

좋은 웹페이지 즐겨찾기