private async UniTask TextFeedAsync() { //文字送りで表示 text.text = ""; var strpool = new string[MAX_ROWS]; int loadendJ = 0; for (int j = 0; j < MAX_ROWS && !skipFeeding; j++) { if (cnt + j >= textAsset.SplitedText.Length) { break; } strpool[j] = textAsset.ReadLine(j + cnt); loadendJ++; for (int i = 0; i < strpool[j].Length && !skipFeeding; i++) { await UniTask.Delay(FEED_DELAY); text.text += strpool[j][i]; } text.text += '\n'; await UniTask.Delay(FEED_RAW_DELAY); } //全文を表示 text.text = ""; for (int j = 0; j < MAX_ROWS; j++) { if (cnt + j >= textAsset.SplitedText.Length) { break; } if (j < loadendJ) { text.text += strpool[j] + '\n'; } else { text.text += textAsset.ReadLine(cnt + j) + '\n'; } } skipFeeding = false; nowFeeding = false; cnt += MAX_ROWS; logWindow.SetLogText(text.text); //ログに流す feedEndMark.SetActive(true); onFeedEnd.OnNext(Unit.Default); if (cnt >= textAsset.SplitedText.Length) { onAssetEnd.OnNext(Unit.Default); } }