<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[一些开发技术备忘]]></title><description><![CDATA[经验，直觉，逻辑，建模]]></description><link>https://blog.csdn.net/lightoy</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; lightoy]]></copyright><item><title><![CDATA[AI辅助开发的几点体会]]></title><link>https://blog.csdn.net/lightoy/article/details/160829689</link><guid>https://blog.csdn.net/lightoy/article/details/160829689</guid><author>lightoy</author><pubDate>Sat, 24 Oct 2026 00:25:05 +0800</pubDate><description><![CDATA[持续实践和深入掌握中，时不时有点感悟冒出来。]]></description><category></category></item><item><title><![CDATA[Unity场景整体发紫(Magenta)的异常情况处理]]></title><link>https://blog.csdn.net/lightoy/article/details/168451704</link><guid>https://blog.csdn.net/lightoy/article/details/168451704</guid><author>lightoy</author><pubDate>Mon, 19 Oct 2026 18:22:45 +0800</pubDate><description><![CDATA[整场品红，多半不是某个材质坏了，而是「运行时生效的渲染管线」和「打包时编译 Shader 变体所用的管线」对不上。把设置改回来只是第一步，旧的 Shader 变体缓存和 Addressables 包必须一起重建，否则增量构建会把问题原样带回来。：Unity + URP + Android 出包（不同 Unity 版本的菜单名称与路径略有出入）。项目按设备性能做了画质分级，运行时由切换管线 / 画质档。]]></description><category></category></item><item><title><![CDATA[图形渲染上屏(四)-应用/引擎层--CPU调用渲染命令]]></title><link>https://blog.csdn.net/lightoy/article/details/165121102</link><guid>https://blog.csdn.net/lightoy/article/details/165121102</guid><author>lightoy</author><pubDate>Sun, 13 Sep 2026 12:44:58 +0800</pubDate><description><![CDATA[图形API 定义的是标准接口，但真正和 GPU 硬件打交道的，是显卡驱动。驱动的职责是：把图形API的标准命令翻译成 GPU 硬件能理解的指令。针对具体 GPU 架构进行优化（比如调整命令顺序、合并状态切换）。管理 GPU 内存、调度 GPU 任务。不同厂商的 GPU 架构不同，驱动实现也不同。这也是为什么同一个游戏，在不同显卡上的性能表现会有差异。厂商主要 GPU 架构系列核心特点与代表产品QualcommAdreno。]]></description><category></category></item><item><title><![CDATA[图形渲染上屏(三)-GPU渲染管线--像素是怎么算出]]></title><link>https://blog.csdn.net/lightoy/article/details/165116882</link><guid>https://blog.csdn.net/lightoy/article/details/165116882</guid><author>lightoy</author><pubDate>Sat, 12 Sep 2026 14:42:02 +0800</pubDate><description><![CDATA[GPU 渲染一帧画面，它不是“一步到位”地算出整张图，而是把三维场景数据当成食材，经过一条流水线，一步步加工成最终的像素。

这条流水线，就是 渲染管线（Rendering Pipeline）。]]></description><category></category></item><item><title><![CDATA[图形渲染上屏(二)-帧缓冲的供给--交换链与垂直同步(像素如何进入帧缓冲)]]></title><link>https://blog.csdn.net/lightoy/article/details/164976177</link><guid>https://blog.csdn.net/lightoy/article/details/164976177</guid><author>lightoy</author><pubDate>Fri, 11 Sep 2026 16:12:42 +0800</pubDate><description><![CDATA[当GPU渲染完成后，两块缓冲的角色进行交换——后缓冲变成新的前缓冲，前缓冲变成新的后缓冲。这样，GPU渲染完一帧后，可以先把它放入“等待队列”，然后立刻开始渲染下一帧，而不必等待显示控制器。交换链把后缓冲“推”到队列前面，成为新的前缓冲，原来的前缓冲则回到队列尾部，成为新的后缓冲。光栅化到底发生了什么？至此，我们已经知道了“帧缓冲里的画面是怎么上屏的”，也知道了“交换链和垂直同步如何协调GPU渲染与屏幕刷新”。现在GPU可以写新的后缓冲了，但显示控制器立刻开始读新的前缓冲——GPU和显示控制器又开始竞争。]]></description><category></category></item><item><title><![CDATA[图形渲染上屏(一)-上屏机制--从帧缓冲到物理显示设备]]></title><link>https://blog.csdn.net/lightoy/article/details/164872853</link><guid>https://blog.csdn.net/lightoy/article/details/164872853</guid><author>lightoy</author><pubDate>Thu, 10 Sep 2026 19:22:11 +0800</pubDate><description><![CDATA[知道一个知识点在整个流程中的位置，比孤立地记住它更重要。所以我们需要画一张“图形渲染上屏”的地图。画地图有一个诀窍：从你熟悉的地方出发。]]></description><category></category></item><item><title><![CDATA[Unity 渲染批处理 Static Batch(Editor/Runtime) & SRP Batcher & GPU Instancing & Dynamic Batch]]></title><link>https://blog.csdn.net/lightoy/article/details/164614495</link><guid>https://blog.csdn.net/lightoy/article/details/164614495</guid><author>lightoy</author><pubDate>Tue, 08 Sep 2026 17:23:07 +0800</pubDate><description><![CDATA[同一个 Renderer 同时满足多种批处理条件时，URP 最终按以下顺序决定怎么画。]]></description><category></category></item><item><title><![CDATA[Unity性能优化_动画]]></title><link>https://blog.csdn.net/lightoy/article/details/164062103</link><guid>https://blog.csdn.net/lightoy/article/details/164062103</guid><author>lightoy</author><pubDate>Thu, 27 Aug 2026 17:32:06 +0800</pubDate><description><![CDATA[在项目开发过程中，动画表现需要考虑到其实现的经济性与适合的应用场景。PS：粒子特效可以被视为动画表现的一种形式。但是由于其非线性的特点，不在这里展开描述。]]></description><category></category></item><item><title><![CDATA[Unity性能优化_Shader]]></title><link>https://blog.csdn.net/lightoy/article/details/164088279</link><guid>https://blog.csdn.net/lightoy/article/details/164088279</guid><author>lightoy</author><pubDate>Thu, 27 Aug 2026 11:25:45 +0800</pubDate><description><![CDATA[介绍一些优化Shader的方法。]]></description><category></category></item><item><title><![CDATA[Unity性能优化_Shader_变体]]></title><link>https://blog.csdn.net/lightoy/article/details/164088140</link><guid>https://blog.csdn.net/lightoy/article/details/164088140</guid><author>lightoy</author><pubDate>Wed, 26 Aug 2026 15:45:19 +0800</pubDate><description><![CDATA[介绍Shader变体的优化方法。shader_feature 和 multi_complie 是两个很相似的预编译指令，声明Keyword（宏标识符）。在Shader代码中控制开启宏或关闭宏时物体的渲染过程。最终编译的时候也是根据这些不同的宏来编译生成多种组合形式的Shader源码。其中每一种组合就是这个Shader的一个变体(Variant)。。]]></description><category></category></item><item><title><![CDATA[Unity性能优化_UI]]></title><link>https://blog.csdn.net/lightoy/article/details/160352021</link><guid>https://blog.csdn.net/lightoy/article/details/160352021</guid><author>lightoy</author><pubDate>Wed, 26 Aug 2026 11:09:07 +0800</pubDate><description><![CDATA[与3D场景渲染机制不一样，UI渲染以Canvas为单位进行，CPU负责把UI界面的逻辑结构进行更新，汇总，并负责把这些数据准备好，最后把这些信息传给GPU。]]></description><category></category></item><item><title><![CDATA[Unity性能优化_粒子特效(Particle System)]]></title><link>https://blog.csdn.net/lightoy/article/details/164061731</link><guid>https://blog.csdn.net/lightoy/article/details/164061731</guid><author>lightoy</author><pubDate>Tue, 25 Aug 2026 17:34:14 +0800</pubDate><description><![CDATA[对CPU和GPU来讲，是一个性能消耗的大户。以下记录一些针对移动端的优化方式与思考。]]></description><category></category></item><item><title><![CDATA[使用ILSpy分析C#代码]]></title><link>https://blog.csdn.net/lightoy/article/details/164060684</link><guid>https://blog.csdn.net/lightoy/article/details/164060684</guid><author>lightoy</author><pubDate>Tue, 25 Aug 2026 17:04:52 +0800</pubDate><description><![CDATA[ILSpy是一个开源的.NET程序集查看工具和反编译工具（ILSpy is the open-source .NET assembly browser and decompiler）。]]></description><category></category></item><item><title><![CDATA[关于Unity中点击UI按钮以弹出界面时的响应出现延迟的分析]]></title><link>https://blog.csdn.net/lightoy/article/details/163881467</link><guid>https://blog.csdn.net/lightoy/article/details/163881467</guid><author>lightoy</author><pubDate>Wed, 19 Aug 2026 11:38:19 +0800</pubDate><description><![CDATA[总体说来大概就只有以下6个方面：
一 点击按钮时，先请求了网络协议，等有结果返回了再打开界面
二 UI Prefab资源过于复杂，加载与实例化时间过长
三 UI在Awak和Start函数中进行复杂的逻辑初始化
四 UI按钮事件感应区域太小或者设置错误，本次点击是未命中的
五 点击关闭界面时，界面有结束动画，在看起来动画已经结束了的时候点击其他按钮，但事件被仍未真正完全关闭的界面阻挡了
六 需要打开的UI Prefab中依赖了远程资源]]></description><category></category></item><item><title><![CDATA[VSCode C# Dev Kit兼容问题]]></title><link>https://blog.csdn.net/lightoy/article/details/162775559</link><guid>https://blog.csdn.net/lightoy/article/details/162775559</guid><author>lightoy</author><pubDate>Sat, 11 Jul 2026 02:26:45 +0800</pubDate><description><![CDATA["dotnet.preferCSharpExtension":的值务必为true，即优先使用独立的 C# 扩展意思是：需要安装ms-dotnettools.csharp 扩展，这样可以使用传统的 OmniSharp 工作流。因为对于一些传统的Unity项目工作流，可能会遇到兼容性问题。]]></description><category></category></item><item><title><![CDATA[VSCode Unity Debugger工具与启动]]></title><link>https://blog.csdn.net/lightoy/article/details/162514109</link><guid>https://blog.csdn.net/lightoy/article/details/162514109</guid><author>lightoy</author><pubDate>Thu, 02 Jul 2026 11:40:10 +0800</pubDate><description><![CDATA[【代码】VSCode环境配置-启动UnityDebugger工具。]]></description><category></category></item><item><title><![CDATA[VSCode自动编译Unity C#脚本]]></title><link>https://blog.csdn.net/lightoy/article/details/160869410</link><guid>https://blog.csdn.net/lightoy/article/details/160869410</guid><author>lightoy</author><pubDate>Fri, 08 May 2026 10:22:01 +0800</pubDate><description><![CDATA[痛点：在VSCode修改Unity工程的C#代码之后，需要切换到Unity Editor，以便完成代码编译。
改变：我们需要在VSCode中修改代码之后按下Ctrl+S能够直接编译C#代码。]]></description><category></category></item><item><title><![CDATA[Unity Animator核心功能梳理：从BlendTree到Root Motion，一篇搞懂动画系统]]></title><link>https://blog.csdn.net/lightoy/article/details/159655564</link><guid>https://blog.csdn.net/lightoy/article/details/159655564</guid><author>lightoy</author><pubDate>Mon, 20 Apr 2026 09:37:38 +0800</pubDate><description><![CDATA[在动作表现要求一般的项目中，Unity的动画系统是完全够用的。在不满足项目的需求下，则可以考虑像《永劫无间》一样，基于Unity底层的Playable Graph架构自定义一套动画控制系统。

对于Unity的Animator动画系统，本文系统梳理其核心功能，包括 Blending、BlendTree、Layer、Avatar Mask、Override Controller 和 Root Motion，适合想一次性搞懂动画系统的开发者。熟悉了这几个概念，基本就掌握了整个系统。]]></description><category></category></item><item><title><![CDATA[Unity Library目录使用经验]]></title><link>https://blog.csdn.net/lightoy/article/details/159989897</link><guid>https://blog.csdn.net/lightoy/article/details/159989897</guid><author>lightoy</author><pubDate>Thu, 09 Apr 2026 16:44:19 +0800</pubDate><description><![CDATA[如果遇到工程环境变化之后导致工程启动，Editor编译，运行时报错，在无法定位具体问题的情况下，可以尝试操作Library目录来解决。但是，不要直接暴力删除整个Library目录，那将导致漫长的重建时间。去针对性的删除特定文件夹下的内容，再重启Unity来解决，将节省大量时间。]]></description><category></category></item><item><title><![CDATA[ADB常用命令(WinOS)]]></title><link>https://blog.csdn.net/lightoy/article/details/159530203</link><guid>https://blog.csdn.net/lightoy/article/details/159530203</guid><author>lightoy</author><pubDate>Mon, 30 Mar 2026 22:42:18 +0800</pubDate><description><![CDATA[ADB即Android Debug Bridge，作为Android开发的常用调试工具。]]></description><category></category></item></channel></rss>