项目定位:给 Unity 开发者在工作间隙摸鱼看本地小说用的轻量小工具。Console 伪装和快捷隐藏是主要功能,不以通用电子书阅读器为目标。
Unity Novel Reader 运行在 Unity Editor 内,直接读取本地文本。默认界面采用 Console 伪装模式,包括 Console 标签标题、工具栏、Log 行、级别图标、搜索框和右侧计数器。
阅读器支持分页、章节、书签、进度保存和快捷键设置。伪装键可以在 Console 模式下切换小说正文与配套日志详情;老板键可以隐藏或恢复阅读器,并切换到 Scene、Console、Profiler、Animator 或 Project 窗口。
小说文件、阅读进度和书签都不进入真实项目;卸载工具、切换项目或 SVN 还原后,阅读数据仍然保留。
- 老板键与伪装键已分开:老板键负责隐藏阅读器并切换到目标窗口;伪装键在 Console 模式下只切换小说正文与配套日志详情,在 Classic 模式下等同老板键。
- 老板键会优先切换同一 Dock 内的其他页签,恢复阅读器时保持原来的停靠布局;无法切换同组页签时才关闭窗口。
- 新增默认关闭的
Strong hover disguise:鼠标移出阅读器或 Unity 失去焦点后,Console、Classic 和 Settings 都会临时显示完整 Console 伪装;鼠标返回后恢复原界面与阅读位置。 - Console Log 行支持右键添加一次性蓝色定位标记,翻页、跳章、换书或标记其他行后自动清除,不写入书签。
- Reimport 后会保留当前页与滚动位置;进入或退出 Play Mode 后,Console 级别图标会自动恢复。
- Synthetic Header 的时间和候选消息只在翻页、跳章、换书或重开窗口等明显变化时更新;Info、Warning、Error 候选池分别为 25、15、5 条。
Open TXT、书库、阅读皮肤切换和 Settings 统一收纳在Editor ▼菜单,Classic 与 Console 模式可以双向切换。
默认 Console 模式包含以下功能:
- 标签标题与图标、工具栏、交替深浅的 Log 行、级别图标、搜索框和右侧计数器采用近似 Unity Console 的布局。
Prev、Next、Mark提供翻页和书签操作;Editor ▼集中提供Open TXT、书库、面板、设置和阅读皮肤切换。Clear用于隐藏或恢复当前正文,不改变页码、进度、书签和滚动位置。- 右键任意 Log 行可添加一次性蓝色定位标记;右键另一行时标记会转移,翻页、跳章或换书后自动清除,不写入阅读数据。
- 章节标题使用 Error,段首使用 Log/Info,同段续行使用 Warning;右侧级别开关会同步弱化或恢复文字和对应图标,不过滤正文。
- Log 行会根据窗口宽度拆分或增高,保持正文完整显示。
- 目录/书签侧栏默认收起,需要时可以展开。
- 带时间戳的伪日志头可选,默认关闭。
- 伪装键可将小说正文切换为与每条伪日志头一一配套的日志详情,再次触发会恢复正文。
- 可选的强力伪装只在鼠标位于阅读器窗口内时显示小说;鼠标移出或 Unity 失去焦点后,整个窗口会自动切换为完整 Console 伪装。
Console 伪装只影响显示方式;原文字符、空白、偏移、阅读进度和书签保持不变。
- 提供 Console 伪装模式,并保留 Classic Reader 传统阅读布局。
- 直接读取项目外的
.txt、.text、.md,不导入Assets。 - 自动识别 UTF-8、UTF-16、GB18030 和 GBK。
- 识别常见中文、英文章节标题,提供搜索和跳转。
- 跨 Unity 项目保存书库、进度、书签和阅读设置。
- 分页、进度跳转、字号、每页字数和深浅背景可调。
- Console 模式下目录/书签侧栏默认收起,并提供明确的展开、收起控制。
- 提供可重绑的伪装键、老板键和可选伪装窗口。
- 主窗口内置轻量 Settings 页面,可设置快捷键、阅读皮肤、伪日志头和伪装策略。
- 强力伪装在 Console、Classic 和 Settings 页面均生效,并使用独立滚动位置,不影响小说阅读位置。
- 常驻
Prev/Next翻页按钮;Clear可反复隐藏/恢复正文,颜色开关不隐藏正文。 - 只有 Editor 程序集,不进入 Player 构建。
- 从 最新 Release 下载
UnityNovelReader-1.0.0.unitypackage。 - 将文件拖进 Unity,或使用 Assets > Import Package > Custom Package...。
- 保持两个文件均被选中并导入。
导入后只有 Assets/UnityNovelReader.Editor.dll 和对应 .meta。如果装过早期源码版 .unitypackage,请先删除 Assets/UnityNovelReader 旧目录,再导入当前版本。
在 Window > Package Manager 中选择 + > Add package from git URL...,输入:
https://github.com/yyyyyp233/UnityNovelReader.git#v1.0.0
- 将本仓库放在 Unity 项目以外,例如
C:\Tools\UnityNovelReader。 - Unity 打开 Window > Package Manager。
- 点击 + > Add package from disk...。
- 选择本仓库根目录的
package.json。
也可以运行:
powershell -ExecutionPolicy Bypass -File .\Tools~\Toggle-LocalPackage.ps1 -Action Install -ProjectPath C:\你的Unity项目仓库的 Releases~ 目录会生成可直接拖进 Unity 编辑器的传统资源包;目录名末尾的 ~ 可以避免 Unity 把发行文件当成项目资源扫描:
powershell -ExecutionPolicy Bypass -File .\Tools~\Build-UnityPackage.ps1也可以指定 Unity 和输出路径:
powershell -ExecutionPolicy Bypass -File .\Tools~\Build-UnityPackage.ps1 `
-UnityPath "C:\Program Files\Unity\Hub\Editor\2022.3.62f2\Editor\Unity.exe" `
-OutputPath ".\Releases~\UnityNovelReader-1.0.0.unitypackage"拖进 Unity 后只会得到 Assets/UnityNovelReader.Editor.dll 和对应 .meta,共 1 个资产路径、落盘 2 个文件,不产生额外目录。DLL 的导入配置强制为 Editor-only,不进入 Player;完整 MIT 声明嵌入程序集元数据,完整源码与可读许可证仍保留在 GitHub/UPM 仓库。请勿执行 SVN Add。删除这两个文件即可卸载,不影响项目外的小说、书签和进度。
可复现构建和发布检查详见发布流程。
在 Package Manager 中 Remove,或者运行:
powershell -ExecutionPolicy Bypass -File .\Tools~\Toggle-LocalPackage.ps1 -Action Uninstall -ProjectPath C:\你的Unity项目也可以直接 SVN 还原 Packages/manifest.json 和 Packages/packages-lock.json。这些操作都不会删除阅读记录。
Windows 默认数据位置:
%LOCALAPPDATA%\UnityNovelReader\state.json
Unity 菜单 Tools > Unity Novel Reader > Open Data Folder 可以直接打开。启动 Unity 前设置环境变量 UNITY_NOVEL_READER_HOME 可以改成自定义目录。
从 Tools > Unity Novel Reader > Open Reader 打开窗口,然后选择本地小说。默认窗口标题和视觉语言接近 Unity Console:交替深浅的 Log 行、内置级别图标、搜索框和右侧计数开关。
Console 皮肤只改变呈现方式。默认不生成英文日志头,原小说正文直接从每条 Log 的第一行开始,并以约两行正文为目标,左侧使用 Unity 原生 32×32 级别图标。连续换行会附着到相邻正文的源文本中,显示层同时裁掉段首缩进与行首尾空白,使所有可见文字共用同一左边界。级别规则固定为:章节标题用 Error(红色),段首用 Log/Info(白色),同段续行用 Warning(黄色)。通过 Editor ▼ > Synthetic Headers 可以选择启用带时间戳的伪日志头,Settings 中也有同一个开关;Info、Warning、Error 分别提供 25、15、5 条候选消息,时间与候选消息会在翻页、跳章、换书等内容切换时重新生成,普通重绘、窗口缩放或 Reimport 不会反复刷新。源文本仍逐字符保留所有空白、偏移和原顺序。右侧三个级别按钮会同步弱化或恢复对应行的文字与图标,不会过滤或隐藏正文。
Clear 用同一个按钮切换正文隐藏和显示;再次点击会恢复同一页及原滚动位置,不关闭小说,也不改变进度、书签和持久化数据。翻页、章节跳转或重新打开小说也会恢复显示。
工具栏搜索框只搜索章节标题;输入内容时会自动展开章节面板。Console 模式下目录/书签侧栏默认收起,可以点击左侧窄条上的 ▶ 或通过 Editor ▼ > Panels 展开,再用 ◀ 收起。
Editor ▼ > Settings 会直接在当前阅读窗口内切到轻量设置页,不会额外打开插件窗口。这里可以修改快捷键、Console 外观、伪日志头和老板键目标;快捷键由 Unity 的用户级 Shortcut Manager 保存,不写入项目。
Settings 中的 Strong hover disguise 默认关闭。开启后,鼠标在窗口内或重新选中阅读器时显示所选 Reader 或 Settings;鼠标移出窗口或 Unity 失去焦点时,标题、工具栏和内容会整体切换成 Console,并强制显示 Synthetic Header 与配套日志详情。目录、章节搜索词、Clear 状态和普通滚动位置不会泄露到这个伪装视图。强力伪装开启期间伪装键不再额外切换画面,老板键保持原行为。无论当前是否正在伪装,都可以通过阅读器的 Editor ▼ > Strong Hover Disguise 直接关闭;若窗口状态异常,也可以使用 Unity 顶部菜单 Tools > Unity Novel Reader > Disable Strong Hover Disguise 恢复。
| 操作 | 控件或默认快捷键 |
|---|---|
| 打开本地小说 | Editor ▼ > Open TXT |
| 上一页 / 下一页 | 常驻 Prev / Next 按钮 |
| 隐藏 / 恢复可见正文 | Clear |
| 添加书签 | Mark |
| 目录、书签、书库、设置 | Editor ▼;目录也可用 ▶ / ◀ 控制 |
| 伪装键:Console 模式切换正文/日志详情;Classic 模式等同老板键 | Ctrl+Alt+R |
| 老板键:隐藏并切到所选伪装窗口 / 恢复 | Ctrl+Alt+H |
| 阅读窗口聚焦时快速隐藏 | Esc |
| 下一页 | Space、PageDown、右方向键 |
| 上一页 | PageUp、左方向键 |
可直接在阅读器 Settings 页或 Unity Shortcut Manager 里重新绑定。
通过 Editor ▼ > Boss-key target 选择老板键目标:Scene、Console、Profiler、Animator 或 Project。老板键在阅读器与其他页签位于同一个 Dock 区域时会切换同组页签并保留原窗口实例,恢复后仍处于原来的页签布局。强力伪装关闭时,伪装键在 Console 模式下只切换正文显示、不移动窗口,在 Classic 模式下行为等同老板键。Console 模式可通过 Editor ▼ > Classic Reader 切换到传统布局;Classic 模式保留同一个 Editor ▼ 菜单,并显示 Console Reader 用于切回伪装模式。如果当前 Unity 版本无法打开所选窗口,会自动回退到 Scene。
- 不请求网络。
- 不把小说内容复制进项目或插件目录。
- 不使用项目内数据库,也不依赖
EditorPrefs。 - UPM 安装只产生正常需要的
manifest.json/packages-lock.json本地差异。 .unitypackage安装只向Assets根目录导入一个 Editor-only DLL 及其.meta;MIT 声明嵌入 DLL,不导入源码、小说或阅读数据。- 包被移除后,用户数据仍保留在系统用户目录。
源码包支持 Unity 2020.3 或更高版本。EditMode 测试位于 Tests/Editor。当前版本已在 Unity 2022.3.62f2 完成导入、编译和 64 项 EditMode 测试,其中 63 项通过、1 项因环境条件忽略;真实 GB18030 长篇文本 smoke test 识别到 1,840 章。
