You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:32:19