Cocos Creator性能优化全攻略:从资源管理到渲染优化的移动端实战
1. 项目概述从“能跑”到“跑得顺”的性能认知跃迁刚接触Cocos Creator时很多开发者包括我自己都容易陷入一个误区只要游戏逻辑写对了画面能正常显示项目就算完成了。直到第一次把项目打包到真机上看到帧率像过山车一样从60帧跌到20帧甚至触发设备发热降频才猛然意识到“性能优化”不是选修课而是决定产品生死线的必修课。尤其是在移动端硬件资源有限用户对卡顿、发热、耗电的容忍度极低。今天聊的“Cocos Creator基础入门_性能优化”其核心价值就在于它不是一个孤立的高级技巧集合而是应该从项目第一天起就融入开发血液的思维方式。它关乎的不仅仅是几行代码的调整更是一整套从资源管理、渲染管线到逻辑架构的工程哲学。无论你是刚学完官方教程的新手还是正在为线上项目卡顿焦头烂额的资深开发者系统性地梳理一遍性能优化的基础与进阶路径都至关重要。2. 性能优化的核心思路从“治标”到“治本”的体系化构建很多人在遇到性能问题时第一反应是去网上搜索“Cocos Creator 卡顿怎么办”然后尝试一堆诸如“合并DrawCall”、“使用对象池”的孤立技巧。这种方法往往能临时解决表面问题但深层次的瓶颈依然存在且代码会变得越来越难以维护。真正的性能优化必须建立在清晰的认知体系上你需要知道性能消耗主要发生在哪里以及这些消耗是如何被你的项目设计和代码一步步“创造”出来的。2.1 理解性能消耗的四大支柱在Cocos Creator中性能瓶颈主要围绕以下四个核心领域展开理解它们是优化的第一步CPU逻辑与驱动开销这是游戏逻辑、物理计算、动画系统、JavaScript代码执行的主战场。低效的算法、频繁的GC垃圾回收、每帧都在执行的冗余计算是消耗CPU的元凶。例如在update里用find查找节点、频繁创建临时对象如new cc.Vec2、复杂的碰撞检测逻辑都会直接拉高CPU占用。GPU渲染与填充开销负责将你的场景、精灵、粒子效果绘制到屏幕上。性能杀手主要包括过高的渲染批次DrawCall、复杂的片元着色器Fragment Shader、过度绘制Overdraw以及高分辨率纹理带来的带宽压力。一个满是单独UI图片的界面其DrawCall数量可能轻松破百。内存资源与对象开销所有加载的纹理、音频、预制体、以及运行时创建的JavaScript对象都会占用内存。内存泄露如未销毁的节点监听器、资源冗余加载同一张图被多个Sprite引用但未共享、大纹理不经压缩直接使用会导致内存快速增长最终引发闪退或系统强杀。带宽网络与IO开销主要影响资源加载速度和网络同步。对于小游戏或需要热更新的项目资源包大小、网络请求频率至关重要。不合理的资源分包、巨大的首包体积会直接拉长用户的等待时间导致流失。优化的本质就是在保证视觉效果和游戏体验的前提下在这四个维度上做“减法”和“精细化管控”。2.2 建立“预防优于治疗”的优化流程优化不应是项目尾声的“救火”行为而应贯穿始终规划期确定目标设备如中低端安卓机设定性能预算如DrawCall 50 内存峰值 200MB。美术和策划在产出资源时就需要遵循规范如纹理尺寸为2的幂、合理使用图集。开发期编写代码时时刻警惕性能陷阱。使用性能分析工具如Chrome DevTools、Cocos Creator自带的Profiler进行早期、频繁的测试而不是等到所有功能完成。测试期在真机上进行全面性能测试覆盖低、中、高端设备记录关键数据帧率、内存、DrawCall建立性能基线以便后续对比。3. 资源管理从源头扼杀性能瓶颈资源是性能问题的最大来源之一。不当的资源管理就像在房子里堆满了不必要的家具不仅占地方打扫起来也费劲。3.1 纹理优化尺寸、格式与合批的艺术纹理是GPU内存和带宽消耗的主力。优化纹理是提升性能性价比最高的手段之一。尺寸压缩与2的幂永远不要将4096x4096的原画直接导入作为UI精灵。根据精灵在屏幕上显示的最大尺寸来设定纹理大小。例如一个全屏背景在1080p的设备上2048x2048足矣。同时确保纹理长宽为2的幂如32, 64, 128, 256, 512...这能保证纹理在GPU内存中以最紧凑的方式排列提高访问效率并支持Mipmap等高级特性。格式选择Cocos Creator支持多种纹理压缩格式如PVRTC、ETC、ASTC。针对不同平台选择最优格式至关重要。iOS优先使用PVRTC它是iOS设备的原生压缩格式在GPU中无需解压节省内存和带宽。Android情况复杂些。对于支持ASTC的新设备大多数中高端机ASTC在质量和压缩比上表现最好。对于老设备ETC2是OpenGL ES 3.0的标准而ETC1兼容性最广但不支持透明通道透明通道需拆分成两张图。在Creator的“项目设置-资源服务器”中可以配置多套压缩方案构建时会自动生成对应平台的包。纹理图集Auto Atlas这是降低DrawCall的核武器。将大量零碎的小图片特别是UI图标打包到一张或几张大图集中。这样渲染这些精灵时GPU只需要切换很少的纹理状态从而合并大量的DrawCall。在Creator中配置好图集后在代码中引用图集子纹理的方式是sprite.spriteFrame this.spriteAtlas.getSpriteFrame(icon_name);。注意图集不是越大越好。过大的图集如4096x4096在某些低端设备上可能无法加载有最大纹理尺寸限制。通常2048x2048是一个安全且高效的选择。同时动态图集Dynamic Atlas功能可以自动合并一些未打包的纹理但对性能有额外开销适用于开发期发布时应尽量使用静态图集。3.2 音频与字体优化容易被忽略的“内存刺客”音频避免使用未压缩的.wav文件它们体积巨大。优先使用压缩格式如.mp3或.ogg。对于短促的音效如点击声、爆炸声可以考虑使用更小的格式或者通过编辑器设置合适的加载模式Dynamic动态加载或Static常驻内存。字体系统字体性能最好但缺乏个性。使用自定义TTF字体文件时要意识到它可能包含数千个字符占用数MB内存。如果UI中只用到几十个字符如数字、英文强烈建议使用位图字体BMFont。你可以用工具如BMFont将需要的字符导出为一张纹理和一个字符映射文件这样渲染效率极高且DrawCall很低。4. 渲染性能优化让每一帧都物尽其用渲染是GPU的主要工作优化目标是让GPU用最少的指令画出最好的画面。4.1 深入理解与优化DrawCallDrawCall是CPU向GPU发起的一次绘制命令。每次切换渲染状态如纹理、着色器、混合模式都可能引起一次DrawCall。DrawCall过多CPU在准备和提交命令上就会花费大量时间导致CPU瓶颈。静态合批Static Batching对于场景中位置、材质、纹理都不会改变的静态物体如背景建筑、地图块可以将其合并为一个大的网格Mesh。这样它们在整个运行期只会产生一次DrawCall。在Creator中可以通过将节点的Static属性勾选来实现但要注意这会增加内存占用存储合并后的网格数据。动态合批Dynamic Batching引擎会自动尝试合并一些使用相同材质和纹理且顶点数较少的动态物体如大量相同的子弹、粒子。但这有严格限制顶点数上限、不能使用自定义材质等。不要过度依赖动态合批它本身也有CPU开销。减少渲染状态切换这是手动优化的关键。在UI设计中尽量让相邻的、使用相同纹理的节点在渲染顺序上挨着。例如一个界面上有10个使用同一图集“UI_atlas”的按钮如果它们中间穿插了一个使用“另一个图集”的图片那么渲染顺序就会被打破导致DrawCall增加。可以通过调整节点在场景树中的顺序影响渲染顺序来优化。4.2 对抗过度绘制Overdraw过度绘制是指同一个屏幕像素被绘制了多次。例如一个不透明的全屏背景盖住了后面所有东西但后面的物体依然被计算和绘制了这就是浪费。在移动设备上像素填充率Pixel Fillrate是有限的过度绘制会直接导致帧率下降。层级管理与裁剪合理使用Canvas节点的Culling裁剪功能。对于大型滚动列表确保ScrollView的Content节点正确设置了Culling这样屏幕外的子节点就不会被提交渲染。减少透明与半透明物体半透明渲染Blending需要从后往前排序绘制且无法进行深度测试提前丢弃片段对性能消耗很大。尽量减少全屏半透明遮罩的使用或者降低其更新频率。使用Mask组件的代价Mask组件用于实现圆形头像、不规则裁剪会显著增加Overdraw和DrawCall因为它需要额外绘制一个模板缓冲区Stencil Buffer。在性能敏感处考虑用美术直接提供带透明通道的裁剪后图片来代替动态Mask。4.3 着色器与后处理特效的代价慎用自定义着色器编写一个全屏后处理效果如模糊、泛光看起来很酷但意味着屏幕上的每个像素都要额外执行一遍你的复杂片元着色器代码开销巨大。在移动端应尽量避免或寻找性能更优的近似方案。简化片元着色器操作在片元着色器中sin、pow、discard丢弃片段等操作都是高开销的。在顶点着色器中能完成的计算就不要放到片元着色器中。5. 脚本与逻辑性能优化写出高效的JavaScriptCocos Creator使用JavaScript/TypeScript其性能特点与C等编译型语言不同需要特别注意。5.1 避免“每帧查找”与高频创建这是新手最容易踩的坑也是性能的隐形杀手。// 糟糕的写法每帧都在全局查找节点 update(dt) { let player cc.find(Canvas/GameLayer/Player); // 非常耗性能 if (player) { // ... do something } } // 正确的写法在start或onLoad中缓存引用 onLoad() { this.player cc.find(Canvas/GameLayer/Player); } update(dt) { if (this.player) { // ... do something } }同样避免在update或高频回调中创建临时对象// 糟糕的写法每帧都new一个Vec2 update(dt) { let dir new cc.Vec2(1, 0); // 触发内存分配和后续GC dir.normalizeSelf(); // ... use dir } // 正确的写法复用对象 onLoad() { this._tempVec2 new cc.Vec2(); } update(dt) { this._tempVec2.set(1, 0); this._tempVec2.normalizeSelf(); // ... use this._tempVec2 }对于cc.Vec2,cc.Vec3,cc.Color,cc.Rect等常用数学对象养成复用成员变量的习惯。5.2 对象池Object Pool应对频繁创建与销毁对于游戏中频繁出现和消失的对象如子弹、敌人、特效粒子使用cc.NodePool是必须的。// 示例子弹对象池 export class BulletPool { private static _instance: BulletPool null; private _pool: cc.NodePool null; private _bulletPrefab: cc.Prefab null; public static getInstance(): BulletPool { if (!this._instance) { this._instance new BulletPool(); } return this._instance; } init(prefab: cc.Prefab, initCount: number) { this._bulletPrefab prefab; this._pool new cc.NodePool(); for (let i 0; i initCount; i) { let bullet cc.instantiate(prefab); this._pool.put(bullet); } } request(): cc.Node { let bullet null; if (this._pool.size() 0) { bullet this._pool.get(); } else { bullet cc.instantiate(this._bulletPrefab); } // 初始化子弹状态 bullet.getComponent(Bullet).init(); return bullet; } return(bullet: cc.Node) { // 清理子弹状态 bullet.getComponent(Bullet).reset(); this._pool.put(bullet); } }使用对象池几乎消除了节点实例化instantiate和销毁destroy带来的GC压力是保证游戏流畅运行的关键。5.3 事件监听与内存泄漏未正确移除的事件监听器是内存泄漏的常见原因。当一个节点被销毁时它上面绑定的监听器如果未被移除可能会导致回调函数及其关联的作用域无法被垃圾回收。onLoad() { // 使用this.node.on注册的事件在节点销毁时会自动清理 this.node.on(touch-start, this._onTouch, this); // 使用cc.systemEvent.on注册的全局事件必须手动清理 cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this._onKeyDown, this); } onDestroy() { // 必须手动移除全局事件监听 cc.systemEvent.off(cc.SystemEvent.EventType.KEY_DOWN, this._onKeyDown, this); }养成好习惯在onDestroy或组件的destroy回调中检查并移除所有非节点自动管理的监听器。6. 高级策略与工具使用像侦探一样分析性能当基础优化都做完后就需要借助工具来定位更深层次、更隐蔽的性能问题。6.1 善用性能分析工具ProfilerCocos Creator内置的Profiler和浏览器开发者工具是你的最佳搭档。Cocos Creator Profiler通过开发者 - 性能分析器打开。它能提供引擎层面的详细数据CPU Profiler查看每一帧所有函数的调用耗时找到最耗时的脚本函数。Memory Profiler查看内存快照分析哪些对象、纹理占用了大量内存检查是否存在内存泄漏对比两个时间点的快照看对象是否只增不减。DrawCall/GFX直观看到每一帧的DrawCall数量、三角面数、渲染状态切换次数。Chrome DevTools在浏览器中运行时按F12打开。Performance面板录制一段时间内的运行时性能可以看到完整的调用栈、渲染活动、GPU活动精确到毫秒级。Memory面板拍摄堆内存快照分析JavaScript对象的分配和保留情况对于查找由闭包、未解绑事件引起的内存泄漏非常有效。6.2 针对性的优化策略分帧加载在进入一个复杂场景时不要在同一帧内实例化所有节点和加载所有资源。可以将初始化工作分散到多帧中完成。async loadSceneData() { let items [...]; // 需要创建的物品列表 for (let i 0; i items.length; i) { await this.createItemAsync(items[i]); // 每创建几个物品等待一帧避免卡顿 if (i % 5 0) { await this.waitForNextFrame(); } } } waitForNextFrame() { return new Promise(resolve { this.scheduleOnce(() resolve(), 0); }); }降低更新频率不是所有逻辑都需要每秒执行60次。对于AI决策、路径计算、非核心的数值更新可以降低其执行频率例如每3帧或每0.1秒执行一次。private _aiUpdateInterval: number 0.1; private _aiUpdateTimer: number 0; update(dt) { this._aiUpdateTimer dt; if (this._aiUpdateTimer this._aiUpdateInterval) { this._aiUpdateTimer 0; this.updateAI(); // 执行昂贵的AI逻辑 } // 其他每帧都需要执行的逻辑... }使用更高效的数据结构在需要频繁查找、遍历的场景中使用Set或Map代替Array可以大幅提升效率。例如管理上百个敌人时判断某个位置是否有敌人用Set的has方法比用Array的find或遍历要快得多。7. 实战问题排查与性能调优清单理论最终要服务于实践。下面是一个基于真实项目踩坑经验的性能问题排查清单你可以把它当作一个自查表。7.1 帧率低下FPS低现象可能原因排查与解决思路帧率波动大复杂场景卡顿CPU瓶颈逻辑复杂1. 打开CPU Profiler查看耗时最高的函数。2. 检查update中是否有复杂计算、频繁查找节点、创建临时对象。3. 检查物理引擎的刚体数量和碰撞检测复杂度。帧率持续偏低但CPU占用不高GPU瓶颈渲染压力大1. 查看Stats面板或Profiler中的DrawCall数是否过高移动端建议100。2. 检查是否使用了高分辨率纹理、复杂粒子特效、全屏后处理。3. 在Creator中开启“显示Overdraw”开发者-调试显示模式查看红色区域是否过多。切换场景或弹出界面时卡顿同步加载资源/实例化1. 使用分帧加载或异步加载cc.resources.load。2. 对于UI使用cc.instantiate实例化预制体后可以先将其active设为false等所有组件初始化完成后再显示避免初始化计算集中在同一帧。游戏运行一段时间后越来越卡内存泄漏/资源未释放1. 使用Memory Profiler对比游戏开始和运行一段时间后的内存快照。2. 重点检查全局事件监听、节点引用、动态加载的资源cc.resources.load是否在不需要时正确释放cc.resources.release。3. 检查对象池中的对象是否在游戏结束后还残留。7.2 内存占用过高现象可能原因排查与解决思路内存持续增长直至崩溃资源泄漏1. 动态加载的资源纹理、图集、预制体在使用后没有调用release。2. 音频资源加载模式设置不当大量音频文件常驻内存。内存基线很高资源冗余/过大1. 检查纹理尺寸是否远大于显示需求。2. 检查是否有多个精灵引用了同一张纹理的不同副本而非共享SpriteFrame。3. 检查是否使用了巨大的TTF字体文件。JavaScript堆内存高对象未释放/缓存过大1. 检查是否有全局缓存对象如数组、Map只增不减。2. 使用Chrome Memory快照查看分离的DOM树和JavaScript对象引用链。7.3 打包后真机问题现象可能原因排查与解决思路低端安卓机白屏/闪退纹理尺寸超限/内存超限1. 检查最大纹理图集是否超过设备支持通常低端机限制为2048。2. 在低端机上使用更激进的纹理压缩格式如ETC1。3. 使用Creator的“自定义项目构建模板”在原生层调整内存分配策略。加载缓慢首包资源过多1. 使用“构建发布”面板中的“MD5 Cache”和“主包压缩”选项。2. 合理配置“资源服务器”设置将非必要资源放到远程按需下载。3. 使用“小游戏分包”或“Asset Bundle”功能拆分资源。发热严重持续高负载1. 在game.frameRate中设置一个合理的帧率如30避免不必要的满帧运行。2. 检查是否有在后台持续运行的逻辑或动画如未暂停的计时器。3. 优化GPU负载减少Overdraw和复杂着色器计算。性能优化是一个永无止境的、需要平衡艺术与技术的旅程。它没有银弹需要你像侦探一样耐心地使用工具收集数据提出假设验证方案。最深刻的体会是最好的优化往往发生在设计阶段。在写第一行代码、导入第一张图片之前就思考它可能带来的性能影响这种前瞻性思维比任何事后的“奇技淫巧”都更有价值。从今天起试着在项目里建立一个简单的性能看板定期监测几个核心指标你会对代码和资源产生全新的、更负责任的认识。

相关新闻

力扣437力扣总和Ⅲ

力扣437力扣总和Ⅲ

给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点&…

2026/10/10 13:52:29 阅读更多 →
逆向解析Facebook登录协议:从抓包到Python模拟登录的实战指南

逆向解析Facebook登录协议:从抓包到Python模拟登录的实战指南

1. 项目概述:为什么我们要研究Facebook的登录协议?如果你是一名移动应用开发者、安全研究员,或者对网络协议和自动化技术感兴趣,那么“逆向解析Facebook登录协议”这个话题,绝对是一个能让你技术功力大增的实战项目。这…

2026/9/30 16:50:46 阅读更多 →
每日关注简报|2026年8月2日:Agent 上下文、Windows Insider、npm 安全与芯片市场

每日关注简报|2026年8月2日:Agent 上下文、Windows Insider、npm 安全与芯片市场

🔥 个人主页: 杨利杰YJlio ❄️ 个人专栏: 《Windows 疑难杂症与工单复盘案例库》 《Sysinternals实战教程》 《WINDOWS教程》 《Windows PowerShell 实战》 《IOS插件分析测试》 《超简单:用Python让Excel飞起来》…

2026/10/6 4:13:53 阅读更多 →

最新新闻

K8s 探针配置的 3 个反直觉行为:为什么 Pod 一直没就绪

K8s 探针配置的 3 个反直觉行为:为什么 Pod 一直没就绪

我不会起名字322 后端 / 算法 / 数据库 📘 技术栈 | 🧩 力扣 Hot100 | 🐹 Go 项目 | 🟥 Redis | 🐬 MySQL 文章目录K8s 探针配置的 3 个反直觉行为:为什么 P…

2026/10/13 10:20:50 阅读更多 →
Linux 6.12 源码深度剖析: shrink_node

Linux 6.12 源码深度剖析: shrink_node

Linux 6.12 内核深度解析:内存回收核心引擎 shrink_node 1. 📌 技术点速览 在 Linux 内存管理系统中,当物理内存紧张、达到或低于特定的水位线(Watermark)时,内核必须启动页面回收(Page Reclaim)机制以释放物理内存。shrink_node 函数是整个内存回收子系统的核心控制…

2026/10/13 10:20:50 阅读更多 →
闲鱼自动回复不生效怎么办?叮当小宝CS排查三步

闲鱼自动回复不生效怎么办?叮当小宝CS排查三步

闲鱼的自动回复是卖家最常用也最常出状况的功能:明明设了话术,买家发来消息却没有回。这篇按三步排查把常见原因过一遍,再说说闲鱼自带工具的边界,以及单量上来之后怎么补位。## 先查:设置是否真的保存生效路径再走一遍…

2026/10/13 10:20:50 阅读更多 →
十六进制转十进制C语言代码实现

十六进制转十进制C语言代码实现

本文章主要讲解: 将输入的十六进制数转化为十进制数的C语言代码实现过程知识较为基础&#xff0c;若有不足请各位多多指教首先给出完整实现代码&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> #define weish…

2026/10/13 10:20:50 阅读更多 →
Godot VisibleOnScreenNotifier2D 实战指南:基于渲染剔除的 2D 屏幕可见性检测

Godot VisibleOnScreenNotifier2D 实战指南:基于渲染剔除的 2D 屏幕可见性检测

文档教程游戏开发 【免费下载链接】godot-docs Godot Engine official documentation 项目地址&#xff1a; https://gitcode.com/GitHub_Trending/go/godot-docs 点击查看 免费下载 VisibleOnScreenNotifier2D 是 Godot Engine 官方文档&#xff08;本仓库 godot-docs&#x…

2026/10/13 10:20:50 阅读更多 →
HANA数据库HA高可用双机架构原理

HANA数据库HA高可用双机架构原理

HA双机架构的核心概念与设计思路拆解1. 主流HA模式&#xff1a;共享存储 vs. 存储复制HANA HA主要有两种实现模式&#xff0c;选择哪一种&#xff0c;取决于你的基础设施策略和成本考量。共享存储架构&#xff08;Shared Storage&#xff09; &#xff1a;这是较为传统和经典的…

2026/10/13 10:19:49 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目&#xff0c;我最大的感受是&#xff0c;大部分坑不是出在技术前沿&#xff0c;而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节&#xff0c;最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了&#xff0c;很难不碰到舵机控制这道坎。做智能小车要转方向&#xff0c;做机械臂要抬关节&#xff0c;做云台要偏航俯仰&#xff0c;背后都是同一个东西在干活&#xff1a;舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”&#xff1f;——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台&#xff1f;或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜&#xff1f;又或者&#xff0c;在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →