零基础学编程一周实录:C#与Unity从入门到跑通小游戏
这段时间一直有人问零基础学编程到底该从哪入手尤其是想碰游戏开发的人。我自己的答案很简单先别想太多挑一个资料最多、反馈最快、能立刻看到结果的方向先跑起来。而我选择的路就是 C# 与 Unity这篇周报 #0010.1-10.7就是我在第一天到第七天之间真实踩过的坑以及实际操作下来最值得记下来的东西。写出来的内容不完美但每一步都真实可复现适合刚刚接触编程、完全没写过代码、甚至没装过引擎的朋友参考。1. 决定入坑为什么从 C# 与 Unity 开始1.1 选技术栈时的真实考量在按下下载按钮之前我差不多纠结了一整周。市面上可选的方向实在太多纯前端、纯后端、二维游戏、三维游戏、数字艺术工具……一个零基础的人最容易犯的错不是不努力而是在“学什么”上反复横跳最终什么都没学成。我给自己定了三条筛选标准第一学习资料足够多遇到问题能搜到答案第二正反馈要快最好敲几行代码就能看到画面变化第三路线足够长学完以后还能继续往深入走。按照这三条标准C# 与 Unity 自然就浮出来了。Unity 的社区生态和中文教程量在游戏引擎里属于第一梯队几乎你能遇到的每个报错、每个奇怪问题都有前人留下的记录。C# 这门语言虽然不像某些脚本语言那样“随便写就能跑”但它强类型、语法规整、对新手来说反而有一种边界清晰的安全感——你更容易知道自己的代码为什么会错而不是毫无头绪地瞎猜。我其实也考虑过“先纯学 C# 语法再进 Unity”这条路。但认真评估后发现这是一个典型的完美主义陷阱纯语法学习太枯燥写了几周的控制台输出之后热情基本就耗光了。反过来直接进 Unity在游戏场景里学习变量、循环、方法每一个知识点都能立刻看到它在游戏对象上产生的效果。所以我最终的路线是C# 语法和 Unity 实操并行用一小段一小段的小目标驱动学习而不是等着把语法全学完再开工。1.2 一周学习目标拆解零基础学东西最大的敌人不是难度而是没有节奏。我在开始之前先把这七天按天拆成了小任务每项都不难但每天都必须产出一点东西。下面是我给自己定的一周计划表你完全可以照搬日期学习内容交付物 / 验证方式10.1安装 Unity 引擎、注册账号、创建第一个项目一个能打开的空白 3D 场景10.2认识 Unity 编辑器窗口学会操作场景、运行游戏能拖动方块点击 Play 看到界面切换10.3-10.4C# 基础变量、数据类型、条件判断、循环写一个自动在控制台打印数字的脚本10.5C# 方法、类的基础概念理解 Unity 脚本结构写一个包含方法调用的脚本10.6把脚本挂到游戏对象上处理键盘输入方块能上下左右移动10.7调试、修复错误、复盘记录输出本周总结周报这七天内容看起来不多但对一个零基础的人来说刚刚好。我的原则只有一个每天至少给自己留出 30 到 60 分钟的完整专注时间。碎片时间只用来看看别人的经验真正敲代码、看报错、想逻辑必须整块进行不然很容易陷入“好像看了很多、实际上啥也没写”的假学习状态。2. 环境准备与第一个项目2.1 安装开发环境与版本选择环境安装是第一道门槛但它不该成为阻碍。我实际走过的流程是这样先到官网下载 Unity Hub用它来安装引擎版本。这里有个特别重要的建议——装长期支持版本LTS不要装标着 Beta 或最新尝鲜版的版本。新手最大的需求是稳定别人用 LTS 版本遇到的问题是已经被大量验证过、容易搜到解决方案的而不是去当新版引擎的白鼠。我安装时选择的版本就是 6 系列里的 LTS 版本。安装完成后还需要选定代码编辑器。C# 脚本需要编辑器来写Unity Hub 在创建项目时会引导下载。这里我没有过度纠结装了一个常见的代码编辑器能用就行。对零基础来说工具顺手比工具高级重要得多。注意Unity 账号注册和许可证激活是很多人刚开始会卡住的地方。一定要用自己的邮箱注册账号然后按官方流程登录激活个人免费版不要从第三方渠道下载来路不明的破解包或绿色版。这不仅是学习习惯问题更关系到你能不能正常接收引擎更新和官方学习资源。2.2 我的环境配置清单下面是我这一周实际用下来的环境配置给你做参考。各种版本的许可证界面可能会有点不一样但核心项目逻辑是通用的项目我的配置操作系统Windows 11 桌面版内存 16GB引擎版本Unity 6 LTS 系列版本代码编辑器官方推荐的代码编辑器开启 C# 扩展支持学习辅助官方文档、新手教程、自带的基础项目模板安装完成之后还有几个值得在编辑器里顺手配置的小事。第一把 External Script Editor外部脚本编辑器设置成你安装的代码编辑器不然点击脚本后可能打不开文件。第二在 Preferences 里关掉一些你用不到的面板把布局清干净让界面不至于一开始就那么吓人。第三给自己设定一个固定的项目保存目录比如“E:\UnityProjects”不要放到系统盘乱七八糟的路径下面后面找文件会省很多力气。2.3 创建第一个空白场景安装完之后我正式创建了第一个 3D 项目。这一步很简单打开 Unity Hub点“新建项目”模板选择 3D输入项目名称点击创建。等待引擎第一次加载要有耐心首次创建项目需要生成程序集、初始化一些资源有时候会等上一两分钟这属于正常现象。然后我在场景里做了一件最基础但最有仪式感的事创建了一个立方体。层级窗口中点击右键在 3D Object 菜单下选择 Cube。场景里出现了一个灰色方块那一刻我才真正觉得“我进坑了”。接着我给这个立方体换了显眼一点的颜色其实就是在检视面板里找到材质相关的属性调整了颜色值。别小看这一步它让我迅速理解了 Unity 的核心模型场景中的一切都叫 GameObject游戏对象而它的颜色、位置、旋转、甚至以后的行为都是由挂在它身上的组件决定的。3. C# 第一周我实际掌握的语法3.1 变量与数据类型从强类型说起刚开始写 C#第一个绕不开的概念是变量和数据类型。和有些脚本语言不同C# 是强类型语言每个变量在声明时都要明确类型。听起来好像很麻烦但对零基础的人来说这反而是个保护你很难在不知不觉中把一个文本字符串当成数字去计算编译器会在运行前就帮你拦住一部分低级错误。我第一周记下的常用类型包括int整数比如角色血量 100float小数比如移动速度 5.5注意声明时需要带 f 后缀bool布尔值只有 true 和 false比如“是否在地面上”string字符串用双引号包裹比如角色的名字Vector3Unity 提供的三维向量类型用来表示位置、方向、速度在实际写代码时我一开始经常忘记 float 后面的 f结果报错说“不能隐式将 double 转换为 float”。后来理解了原因默认的小数在 C# 里是 double 类型精度比 float 高写 5.5f 才是明确告诉编译器“我就是想用这个精度的浮点数”。3.2 条件判断与循环让代码学会做决定条件判断和循环是代码从“顺序执行”走向“有逻辑”的分水岭。我用的最简单的例子是如果按下了某个键就执行一段逻辑如果存活时间超过了 5 秒就输出一句日志。这类场景天然适合游戏开发比单纯在控制台里打印“1 到 10”有趣得多。循环方面我先掌握了 for 和 foreach。for 循环适合知道循环次数的场景foreach 适合遍历集合里的每个元素。在 Unity 里遍历一个数组里的所有敌人、遍历一个列表里的所有道具是极常见的操作。我不建议一开始就死背语法而是先把逻辑画在脑子里要重复几次、从哪里开始、到哪里结束然后再落到代码上。3.3 方法、修饰符与类的初步接触方法的概念很好理解把一段可以重复使用的逻辑包起来给它起个名字需要时调用它。我第一周学到的方法是自定义一个函数接受参数经过处理返回结果。更快上手的是直接写好的方法比如向控制台输出信息的 Debug.Log、获取水平输入轴的 Input.GetAxis。关于 public 和 private 这两个修饰符我的理解是用一句话“这个成员允不允许外面的代码访问。”公开的字段可以在 Unity 检视面板里直接拖拽和修改这对调试特别方便私有的则只留给类内部使用。Unity 脚本继承自 MonoBehaviour内置了 Start 和 Update 两个特殊方法Start 在对象激活时执行一次Update 在每一帧都会执行。理解这个帧的概念很重要后面我还会再说。3.4 第一次写出的“能跑”的脚本下面这个脚本是我第一周最重要的成果它的功能很简单控制一个方块在场景里上下左右移动并在存活时间达到 5 秒时打印一句提醒。完整代码如下using UnityEngine; public class PlayerCube : MonoBehaviour { public float moveSpeed 5f; private float aliveTime 0f; void Update() { float horizontal Input.GetAxis(Horizontal); float vertical Input.GetAxis(Vertical); transform.position new Vector3(horizontal, vertical, 0f) * Time.deltaTime * moveSpeed; aliveTime Time.deltaTime; if (aliveTime 5f) { Debug.Log(我已经存活 5 秒了); aliveTime 0f; } } }这段代码虽然短但包含了太多值得新手消化的知识点。首先解释 Input.GetAxis它读取键盘输入返回一个范围为 [-1, 1] 的平滑数值。按 A 或左方向键时水平值为负按 D 或右方向键时为正垂直方向同理。我为什么不直接用按键检测因为 GetAxis 自带平滑过渡方块移动起来不会“咔哒咔哒”跳变手感更自然。然后是那个关键运算position new Vector3(...) * Time.deltaTime * moveSpeed。如果去掉 Time.deltaTime同一次移动逻辑在不同帧率的设备上速度就会不一样——高帧率机器上快低帧率机器上慢。用 Time.deltaTime 乘以速度后数值的意义就变成了“每秒移动多少单位”这才符合直觉。比如 moveSpeed 等于 5就代表方块每秒移动 5 个单位距离和时间快慢无关。这段代码让我真正体会到了游戏逻辑和普通软件逻辑的区别游戏里很多东西都要考虑“持续进行”要在每一帧里不断更新状态而不是一次性执行完就结束。4. 把脚本挂到对象上第一次获得“游戏感”4.1 组件式开发的思考方式脚本写好后还需要挂到游戏对象上才能生效。操作非常简单把脚本文件从项目窗口拖到层级窗口的 Cube 上或者拖到检视面板里。这一步背后是 Unity 最核心的设计思想——组件式开发。可以这样理解一个游戏对象就像一盏灯灯座负责存在组件就是灯泡、灯罩、开关。每个组件给对象增加一种能力翻译组件处理位置变换渲染组件决定外观你写的脚本就是一个自定义的“行为开关”。多个组件互相配合对象就活了起来。这种设计让游戏功能的组织变得非常清晰新增功能时不必修改原有代码只需要再挂上一个新脚本。我第一次把脚本拖到 Cube 上时检视面板里立刻多出了一个名为 PlayerCube 的组件上面还显示了一个 moveSpeed 输入框因为我把它声明成了 public 字段。这意味着我可以不修改代码直接在面板里把速度调成 3 或者 10这种所见即所得的调整方式是新手很容易忽略的快乐。4.2 运行游戏、观察控制台与调试习惯点击编辑器顶部的 Play 按钮游戏就会进入运行模式。此时如果按键盘方向键场景中的方块开始移动第一次看到自己写的代码驱动画面里的物体变化那种感觉和单纯打印日志完全不同。同时每次触发 Debug.Log 时Console 窗口会实时出现一条日志信息。这里要强调一个新手最容易踩的坑运行模式下在场景里对物体做的任何修改退出 Play 后都会还原。这不是丢东西而是引擎故意设计的“运行时隔离”。所以在运行之前一定要记得用 CtrlS 保存场景不然你花了半天布置好的场景、调整好的位置可能因为没保存而全部白费。我第一周就因为没有保存场景丢失过一次比较重要的脚本参数调整。4.3 第一次遇到的编译错误全记录零基础写代码不遇报错是不可能的。我这一周最有价值的经历反而是那次完整的报错排查过程。当时我的脚本试图在 Start 方法里直接操作某个组件但运行到那一行时报了 NullReferenceException中文意思是“未将对象引用设置到实例”。通俗解释就是我让代码去调用一个东西但这个变量是空的程序找不到目标。一开始我非常崩溃甚至不确定错误出在代码的哪一行。后来我学会了看 Console 窗口里的报错信息双击报错条目编辑器会自动定位到出错的代码行。再配合 Debug.Log 在关键位置输出中间值很快确定了真正的原因我在场景里没有给对象添加那个组件代码自然找不到它。解决方式有两种一种是在脚本里用 GetComponent 动态获取组件另一种是回到 Unity 编辑器手动给对象添加对应组件。这也让我明白了一个重要原则代码不是高深魔法它在描述一个对象该有什么能力如果对象本身不具备这个能力描述得再精确也会报错。5. 一周常见问题速查与避坑清单5.1 新手必看高频报错与处理方法第一周折腾下来我把自己的报错经历按症状整理成了下面这张速查表可以碰到问题时直接对号入座报错 / 现象大概率原因处理方式双击脚本打不开文件外部脚本编辑器未设置正确在 Preferences 中重新指定代码编辑器有脚本但游戏画面没反应脚本没挂到任何对象上把脚本拖到层级窗口的目标对象The name xxx does not exist变量名拼写错误、作用域超出检查变量声明位置与拼写Cannot implicitly convert double to float小数默认是 double未加 f 后缀给浮点字面量加 f比如 5.5fObject reference not set to an instance变量为空通常组件未获取添加组件或使用 GetComponent运行模式下改完场景退出后全没了运行模式的临时修改不会保留运行前保存运行中记录要改的位置退出后再改按键盘没反应输入轴名拼写错误或中文输入法抢占确认 Horizontal/Vertical 拼写切换英文输入法5.2 我总结的避坑清清单除了报错处理还有几条更偏“习惯”层面的经验它们给我省下的时间远大于任何语法知识。第一条是频繁保存场景和控制脚本改完一行代码就保存一次不要攒到一段逻辑写完再存。第二条是学会看 Console 窗口的日志级别。默认下信息可能很多可以点击过滤按钮只显示错误这样排查问题时不会被大量无关日志干扰。我还在脚本里加了几个临时 Debug.Log把变量的实时值打印出来确认数值是否符合预期这个习惯直到现在都非常受用。第三条和代码本身无关但特别重要使用版本管理工具备份整个项目。我第一周就在本地建了仓库每次完成一个功能点就提交一次。后来我改坏了一个脚本就是靠着之前提交的版本把代码恢复回来的。虽然新手阶段的项目很小但尽早养成版本管理习惯比之后项目变大再回头学要轻松得多。5.3 关于学习节奏的额外补充我在这一周里也发现零基础学习最大的瓶颈不是理解力而是“反馈回路是否够短”。如果你写完一段代码要等很久才看到效果就会越来越没有耐心如果你能写三行代码、运行一次、立刻看到画面变化你就能像个游戏玩家一样被奖励机制带着往前走。Unity 恰好就是反馈极强的环境所以我的具体做法是每次只改一小块逻辑运行一次观察结果再改下一处。千万别想着一次性把整段功能都写完美再运行那样最容易出现一个超级复杂的报错新手根本没法定位错误在哪。6. 第二周方向调整与个人体会6.1 下周要推进的任务第一周建立好基础之后第二周的计划会从“认识语法”转向“做一个小而完整的游戏原型”。我的规划有三项第一掌握碰撞检测和物理组件让方块碰到障碍物时产生反馈第二学习预制体的概念学会批量生成敌人或者拾取物第三接触列表和字典这类集合类型让游戏能够管理多个对象。这样安排的原因是第一周我已经知道了一个对象怎么动但一个游戏至少要包含对象之间的互动。碰撞检测是互动的物理基础预制体是批量生成对象的高效手段集合类型是数据管理的前提。三件事加在一起就足以拼出一个最简单的“控制角色、躲避障碍、收集分数”的小游戏闭环。6.2 我的一些真实感受这一周的收获其实不止是写了几行代码更重要的是我找到了一个属于自己的学习节奏。每天 30 到 60 分钟的整块时间比周末一口气学八小时有效得多。前者让我每天都保持熟悉感后者往往是周一睁眼就把上周的细节忘得差不多了。另外我在每天学习结束后会在一个文档里记下“今天解决了什么问题”哪怕只是修复了一个拼写错误我也会写下来。一周结束后回看发现自己居然解决了十几个具体问题这种实际的积累感比任何口号都更能支撑我继续学下去。最后再分享一个小技巧不要只看教程里的现成代码一定要亲手把代码敲一遍然后故意制造一个错误。比如把 Update 故意拼错看编辑器怎么报错把一个变量名故意改成另一个再看报错信息怎么变化。经历过几次“亲手弄坏再修好”的过程你对语法和报错的理解会远远超过背十遍笔记。这大概就是零基础阶段最值得养成的习惯吧。

相关新闻

代码评审落地难?一套开放协作式评审方案与流程设计实践

代码评审落地难?一套开放协作式评审方案与流程设计实践

open-code-review:一套让代码评审真正落地的开放方案做开发这些年,我见过太多团队把代码评审做成形式主义——拉个群喊一声“帮忙看下”,或者干脆在合并前补个“已评审”的标签,机器一过,代码就悄悄进了主干。评审本来…

2026/10/12 4:09:29 阅读更多 →
用学习日记提升自学效率:从词频统计任务到建立个人知识闭环

用学习日记提升自学效率:从词频统计任务到建立个人知识闭环

学习日记DAY4:我不再问“今天学了多少”,而是问“今天解决了什么问题”看到这个标题,你可能以为是某个学生随手记的流水账。其实不是。我坚持写“学习日记”到今天已经是第四天,这个系列的初衷很简单——把我每天学习一项新技能的…

2026/10/12 4:09:29 阅读更多 →
AI截图一键生成前端代码:开源工具部署与实战指南

AI截图一键生成前端代码:开源工具部署与实战指南

这次我们来看一个在很多前端工程师收藏夹里躺了很久的开源项目:abi / screenshot-to-code。一句话解释它是什么:把一张界面截图(产品原型、UI 设计稿、网页截图都可以)喂给 AI,让它帮你生成对应的前端代码。输出代码支…

2026/10/12 4:09:29 阅读更多 →

最新新闻

litellm实战:用统一网关解决多模型接入与成本治理

litellm实战:用统一网关解决多模型接入与成本治理

项目名就叫 litellm。第一次看到这个名字,很多人以为它又是一个“模型封装库”,但实际用下来,它做的事比“封装”大得多:把几十家模型服务统一成一套接口,顺手把路由、重试、预算、监控全接进来。去年我搭一个多模型评…

2026/10/12 5:01:57 阅读更多 →
UCI心脏疾病数据Python实战:从清洗到建模的完整指南

UCI心脏疾病数据Python实战:从清洗到建模的完整指南

简介:适用于计算机专业毕业设计、课程设计或期末大作业的完整实践资源,围绕UCI心脏病数据集展开数据分析,通过预处理、可视化与机器学习建模识别心脏病风险因素。资源包含Python源码、数据集、分析报告和答辩PPT,共70个文件&#…

2026/10/12 5:01:57 阅读更多 →
1Password涨价背后:订阅制与买断制密码管理器怎么选?

1Password涨价背后:订阅制与买断制密码管理器怎么选?

1Password 涨价这事,这几天好几个朋友转给我看,说个人版一年涨了三分之一,家庭版涨得更狠,问我是不是该考虑换个密码管理器。刚好我也一直在研究这个品类,标题里提到的“168元终身版”我也实际买过、用过一阵子&#x…

2026/10/12 5:01:57 阅读更多 →
Agent技能体系设计实战:从函数堆到可复用、可编排的工程化架构

Agent技能体系设计实战:从函数堆到可复用、可编排的工程化架构

聊到Agent开发,很多人第一反应是:这不就是给大模型套个循环,再挂几个工具函数吗?我一开始也这么想,直到亲手把一个Demo性质的Agent往真实场景里推,才发现最大的短板根本不是模型能力,而是那堆散…

2026/10/12 5:01:57 阅读更多 →
APP 只写了 4KB,FileSystem 却等了 80ms:HarmonyOS 7 怎么分清逻辑 I/O、物理 I/O 和排队

APP 只写了 4KB,FileSystem 却等了 80ms:HarmonyOS 7 怎么分清逻辑 I/O、物理 I/O 和排队

APP 只写了 4KB,FileSystem 却等了 80ms:HarmonyOS 7 怎么分清逻辑 I/O、物理 I/O 和排队 DevEco Studio 26.0 新增 FileSystem 模板,分别展示应用逻辑读写、物理读写、调用栈和 Frame。当前官方文档注明该能力仅在中国大陆可用,…

2026/10/12 5:01:57 阅读更多 →
InterviewGuide Redis 进阶面试指南:主从复制、哨兵高可用、集群寻址与缓存一致性

InterviewGuide Redis 进阶面试指南:主从复制、哨兵高可用、集群寻址与缓存一致性

文档教程知识库 【免费下载链接】InterviewGuide 🔥🔥「InterviewGuide」是阿秀从校园->职场多年计算机自学过程的记录以及学弟学妹们计算机校招&秋招经验总结文章的汇总,包括但不限于C/C 、Golang、JavaScript、Vue、操作系统、数据结…

2026/10/12 5:00:56 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →