//NextTextを分解して、各種処理を挟めるようにする。 protected async UniTask NextText() { Debug.Log("NextText"); //テキストAnim入れるといい。 // var letterAmount = dialogues[currentTextNum].Length; // var current = 1; // while (current <= letterAmount) // { // var s = dialogues[currentTextNum].Substring(0, current); // _targetText.text = s; // current++; // await UniTask.Delay((int)(typingDuration * 1000), cancellationToken: _cts.Token); // } await TextAnim.TypeAnim(_targetText, dialogues[currentTextNum], typingDuration, _cts.Token); currentTextNum++; }
protected override async UniTask FirstEvent(CancellationToken token) { //上下黒クロップいれて映画っぽい演出から始めてもいいな。 FindObjectOfType <RoomHandController>().SwitchClickable(false); var monologueText = FindObjectOfType <SubtitleCanvas>().monologueText; var lang = FindObjectOfType <CommonManager>().PlayLang; _contents = lang == Lang.ja ? contents_ja : contents_en; if (_contents.timeCount.Length != _contents.dialogues.Length + 1) { Debug.LogWarning("コンテンツの情報が適切にセットされていません。"); } for (int i = 0; i < _contents.dialogues.Length; i++) { await UniTask.Delay((int)(_contents.timeCount[0] * 1000), cancellationToken : token); await TextAnim.TypeAnim(monologueText, _contents.dialogues[i], typingDuration, token); while (true) { await UniTask.Yield(PlayerLoopTiming.Update, cancellationToken : token); if (Input.GetMouseButtonDown(0)) { break; } } if (i != _contents.dialogues.Length - 1) { monologueText.text = ""; } } var duration = 3f; await TextAnim.FadeOutText(monologueText, duration, token); FindObjectOfType <RoomHandController>().SwitchClickable(true); }