Unity中StreamReader.ReadLine()读取文本跳过部分行的问题
CYOA游戏日志输出与文件读取问题修复方案
解决StreamReader.ReadLine()跳行问题(隐形换行符导致)
- 统一文件换行符:用Notepad++这类编辑器打开你的图数据文件,通过「编辑」→「行尾符转换」选择对应系统的标准换行格式(Windows选
Windows(CR LF),Mac/Linux选Unix(LF)),保存后重新读取。 - 替换
ReadLine()为自定义分割逻辑:直接读取全部内容,用正则匹配所有可能的换行符分割,同时过滤空行:using (StreamReader reader = new StreamReader("你的文件路径")) { string fullContent = reader.ReadToEnd(); // 匹配所有换行符类型:\r\n、\n、\r string[] allLines = System.Text.RegularExpressions.Regex.Split(fullContent, @"\r\n|\n|\r"); // 过滤掉空行和空白行 var validLines = allLines.Where(line => !string.IsNullOrWhiteSpace(line)).ToList(); // 处理有效行数据 foreach (var line in validLines) { // 你的业务逻辑 } } - 核对文件编码:确保
StreamReader的编码和文件实际编码一致,比如文件是UTF-8就明确指定:using (StreamReader reader = new StreamReader("你的文件路径", Encoding.UTF8)) { // 读取逻辑 }
解决Debug.Log()输出失效/跳过问题
- 清理控制台缓存:Unity编辑器控制台点击右上角「Clear」按钮,避免旧日志覆盖或遮挡新输出。
- 强制日志刷新:在
Debug.Log()后调用Debug.Flush(),确保日志立即写入控制台:Debug.Log("调试内容"); Debug.Flush(); - 检查控制台过滤设置:确认控制台的「Info」「Warnings」「Errors」选项都处于启用状态,且未开启「Collapse」(会合并重复日志,看起来像跳过)。
内容的提问来源于stack exchange,提问作者Shortthetall
相关产品推荐
相关产品推荐

