1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class LetterControl : MonoBehaviour { [TextArea(1, 5)] public string[] letters; public Text letterText;
public float letterSpeed; public float alphaSpeed;
[SerializeField]private bool isLineFinished = true; [SerializeField] private int currentLine = 0;
void Start() { isLineFinished = true; letterText.text = "旅行者:"+"\n";
StartCoroutine(ScrollingLetter()); }
void Update() { }
private IEnumerator ScrollingLetter() { while(true) { if(currentLine==letters.Length && isLineFinished) { letterText.text += "\n"; letterText.text += "温迪"; break; } else { if(isLineFinished) { isLineFinished = false; StartCoroutine(ScrollingLine(letters[currentLine++])); }
yield return new WaitForSeconds(letterSpeed); } } }
private IEnumerator ScrollingLine(string line) { letterText.text += "\u00A0\u00A0\u00A0\u00A0";
foreach (char alpha in line.ToCharArray()) { letterText.text += alpha; yield return new WaitForSeconds(alphaSpeed); }
letterText.text += "\n"; isLineFinished = true; } }
|