- 博客(155)
- 收藏
- 关注
原创 Lua 基础语法(八) Unity Huatuo (HybridCLR)
HybridCLR是基于IL2CPP的Unity原生C#热更新框架,支持AOT编译,性能高、内存低,兼容泛型、反射等全语法,无需学习Lua。通过AssemblyDefine划分热更程序集,打包产出独立dll,运行时加载并反射调用。相比xLua需打标签、ILRuntime受限于iOS禁用JIT,HybridCLR可新增类与方法,支持完整热更新。需Unity 2019.4+,配置IL2CPP后端,热更dll需改后缀为.bytes并置于StreamingAssets,宿主加载后执行逻辑。
2026-09-11 15:45:46
494
原创 Lua 基础语法(七)xLua 完整热更新 Demo
本文详解xLua Hotfix热更新技术,涵盖[Hotfix]标签作用与性能风险、AB包打包配置、UnityWebRequest异步下载及进度条实现、自定义AddLoader加载器注册、Lua热修复C#方法流程,并通过完整Demo演示从点击生成Cube到热更为红色Sphere的全过程。重点解析同名资源踩坑、Hotfix注入失效、重载函数调用异常等高频问题,对比xLua与下一代Huatuo(HybridCLR)热更新方案,强调其能力边界与选型建议,助力开发者掌握热更新核心技能并落地实战。
2026-09-11 15:44:30
389
原创 Lua 基础语法(六)xLua Lua 调用 C# 交互
Lua通过cs.前缀访问C#类、对象与组件,使用冒号调用实例方法,点号调用静态成员。创建对象无需new,可直接调用类名;支持ref/out多返回值、params可变参数及委托事件订阅。注意重载函数因Lua统一为number类型,可能受桥接注册顺序影响。底层依赖虚拟栈与Gen桥接文件实现跨语言交互,需手动生成并注入代码。关键点包括命名空间前缀、:与.区分、事件注册移除、虚拟栈原理及热更新机制。
2026-09-09 15:59:58
440
原创 Codex + 硅基流动 + CC-Switch 完整配置指南(通用版)
本文介绍如何通过硅基流动API与CC-Switch本地协议转换,实现OpenAICodex桌面版/CLI在Windows/macOS上的本地化部署。只需配置API密钥、安装最新版CC-Switch并设置上游格式为ChatCompletions,即可将Codex请求转发至硅基流动,支持DeepSeek-V3等高效代码模型。关键步骤包括启用路由、正确配置供应商及避免404错误。适用于无代理环境,免费额度可长期使用,配置文件位置明确,回滚方法清晰,适合开发者本地高效编程。
2026-09-09 14:37:12
383
原创 Lua 基础语法(五)Unity xLua基础配置与 C# 访问 Lua
xLua是主流热更插件,优势在于Hotfix补丁,可C#主业务Lua修Bug。导入需配置HOTFIX_ENABLE宏、补dll、生成桥接代码。LuaEnv执行DoString/Require,用AddLoader加载外部脚本。C#读取全局变量及5种表映射(Class只读、Interface双向、Dictionary、List、LuaTable)。委托加[CSharpCallLua]映射Lua函数,支持out多返回值。核心区分值拷贝与引用修改。
2026-09-08 19:22:23
400
原创 Lua 基础语法(四)C# 原生交互(LuaInterface)
LuaInterface是C#与Lua互调桥梁,含两个dll,已停维护但适合理解热更新原理。C#通过LuaEnv执行Lua字符串或文件,读取变量、调用函数、遍历表;Lua可用LuaNet加载C#程序集,访问实例(冒号)与静态成员(点号)。热更新核心:仅替换Lua脚本,C#无需重编译。
2026-09-08 19:20:25
331
原创 Lua 基础语法(三) 元表 metatable、元方法、模拟面向对象
Lua通过元表(metatable)实现扩展,__index处理查找(模拟继承),__newindex拦截新键赋值,运算符元方法模拟重载,__tostring自定义打印。点号无隐式self,冒号自动传self。Lua本质是面向过程,面向对象全由table和元表模拟:父类作为原型,子类经元表链查找,可重写方法。
2026-09-07 19:20:55
346
原创 Lua 基础语法(二)
本文总结了Lua核心知识点:运算符与and-or模拟三目;字符串库常用API;table引用特性及table库函数;闭包与迭代器原理;require/dofile/loadfile区别;GC三色标记;利用table模拟封装。强调易错点如~=、引用赋值、闭包捕获等,为Lua开发提供完整速查。
2026-09-07 19:19:31
368
原创 Lua 基础语法(一)
本摘要涵盖Lua开发环境安装与语法基础:八大类型及真假规则、全局/local变量、多赋值交换、table(数组+哈希)与两种遍历、while/repeat-until/if分支、函数及高级特性(匿名、回调、多返回值、可变参数),并点明易错点与面向对象热更新拓展方向。
2026-09-03 19:44:59
361
原创 LeetCode 290 单词规律
本题为LeetCode 290“单词规律”,要求判断pattern字符与句子单词是否一一对应。解法用stringstream分割单词,先校验长度,再用双向哈希表(字符→单词、单词→字符)同步验证映射,避免一对多和多对一冲突。时间O(n),空间O(m)。与LC205同构字符串同模板,是经典哈希表应用题。
2026-09-03 19:40:34
201
原创 LeetCode 242 有效的字母异位词
给定两字符串,判断是否互为字母异位词。最优解用26长度计数数组:先比较长度,遍历s加、遍历t减,最后检查数组是否全为0。时间复杂度O(n),空间O(1)。排序法虽简洁但效率低。若含Unicode字符,改用哈希表。
2026-09-03 19:39:45
217
原创 LeetCode 219 存在重复元素 II
给定整数数组和k,判断是否存在相同数值且下标差≤k。最优解法用哈希表记录每个数值最近出现下标,一次遍历,若当前值已存在且距上次下标≤k则返回true,并始终更新下标为当前位置。时间O(n),空间O(n);可优化用滑动窗口集合将空间降至O(k)。注意匹配后必须更新下标,避免旧值干扰。
2026-09-02 16:02:24
129
原创 LeetCode 205 同构字符串
给定两个字符串,判断是否同构需保证字符间双向一一映射。标准解法用两张哈希表(或ASCII数组)同步记录正向与反向映射,任一冲突即返回false。仅用单向映射会误判“ab”与“aa”。数组映射更优,时间O(n),空间O(1)。
2026-09-02 16:01:31
172
原创 LeetCode 202 快乐数
本文解析LeetCode 202快乐数算法:核心是循环判环,推荐快慢指针(Floyd判环)实现O(1)空间,或哈希集合记录数字;指出固定循环10次的投机写法不严谨,可能误判;提供代码及复杂度对比,并强调所有非快乐数必进入含4的循环。
2026-09-02 16:00:08
161
原创 LeetCode 128 最长连续序列
给定无序数组,求最长连续序列长度,要求O(n)。排序法直观但O(n log n),不满足要求。最优用哈希集合去重;遍历时只从不存在x-1的起点开始,向后累计连续长度,每个数仅访问一次。注意判空、去重、初始长度设为1。附有排序版与哈希版完整代码,后者为面试标准答案。
2026-09-02 15:59:07
231
原创 Unity 热更新(二)
本篇讲解Unity资源热更新核心链路:基于本地/云HTTP服务器存放AB包及Meta文件,通过Meta/GUID版本比对判断更新;使用UnityWebRequest异步下载,保存至PersistentDataPath持久化目录;配以进度条、AssetBundleBrowser工具,覆盖从下载到加载的完整演示。同时指出AB包仅热更资源,代码逻辑需Lua、ILRuntime等方案,并提供拓展思考。
2026-09-02 15:56:30
304
原创 Unity 热更新(一)
本文系统梳理Unity热更新技术:区分冷/热更新,阐述AB包概念、属性配置、编辑器构建、三种压缩算法(LZMA/LZ4/无压缩)、Manifest清单与CRC/MD5校验、分包策略与依赖关系、Unload卸载机制,以及多种同步/异步加载方式,形成完整资源热更新流程。
2026-09-02 15:54:24
674
原创 LeetCode 49 字母异位词分组
摘要:本题要求将字母异位词分组,核心解法有两种:排序字符串作为哈希键(O(nk log k))和字符计数编码作为键(O(nk))。标准做法是遍历字符串,构造唯一标识存入哈希表,再导出分组。进阶用计数编码可避免排序,性能更优。需注意复制原串做key、编码加分隔符防歧义。
2026-09-01 16:33:19
236
原创 LeetCode 1 两数之和
摘要:本题为LeetCode 1,给定整数数组和目标值,找出两数之和等于目标值的下标。最优解法为哈希表单次遍历:用哈希表缓存已遍历数值,先查目标差值,再存当前值,避免同元素重复使用。时间复杂度O(n),空间O(n)。暴力双层循环O(n²)会超时。核心是先查后存,并注意哈希表键值对应关系。
2026-09-01 16:31:54
205
原创 Unity 项目性能优化(三)
本文摘要:Mesh优化移除冗余顶点属性,但要警惕动态模型误删;Shader变体需剥离无用项以减少包体。动画实例化将骨骼计算移入GPU,适合大量重复角色。CPU侧缓存组件、优化物理与GC;GPU侧用图集、LOD、烘焙光照降开销。图集需注意Resources资源无法打包。性能优化是画质、包体、性能的平衡,需用Profiler真实数据分析。
2026-08-31 19:13:58
322
原创 Unity 项目性能优化(二)
本文核心围绕Unity渲染优化技术展开:通过GPUInstancing与SRPBatcher减少DrawCall;UI采用动静分离、图集控制Canvas重构;利用LOD、遮挡剔除、Lightmap降低渲染开销;Mesh合并减少物体数量,同时规范资源管理抑制冗余。综合运用上述技巧,可有效提升项目性能与帧率稳定性。
2026-08-31 19:12:12
365
原创 Unity 项目性能优化(一)
本摘要涵盖Unity性能优化核心:原生与跨平台原理(Mono/IL2CPP)、DrawCall与CPU瓶颈、Profiler分析、模型/音频/贴图资源优化、GC垃圾回收、动态/静态批处理及优化平衡思维,强调综合排查与取舍策略。
2026-08-31 19:10:48
443
原创 LeetCode 392 判断子序列
摘要:本文围绕 LeetCode 392「判断子序列」展开,先给出题目描述、示例与约束,再讲解双指针贪心的最优解法及其优势,随后对比作者的可优化代码与规范优化版代码,最后总结核心要点并拓展海量查询的预处理二分法、递归写法、复杂度对比与易错点复盘。
2026-08-26 11:28:55
143
原创 LeetCode 125 验证回文串
摘要:本文以 LeetCode 125「验证回文串」为例,对比两种解法:先过滤并新建字符串的直观写法,以及原地左右双指针的 O(1) 空间最优解。文章从题目描述、示例与约束出发,逐步分析两种思路的优劣,并给出可 AC 的可优化代码与标准最优代码,最后总结关键工具函数、复杂度对比与常见易错点,帮助读者在面试与在线判题中写出更高效的解法。
2026-08-26 11:26:46
180
原创 LeetCode 11 盛最多水的容器
摘要:本文以 LeetCode 第 11 题「盛最多水的容器」为例,先给出暴力双重循环解法用于理解题意,再重点讲解双指针最优解法:通过移动高度更小的一侧指针,在 O(n) 时间内求出最大容器面积,并对比两种方案的复杂度与易错点。
2026-08-26 11:25:41
224
原创 LeetCode 274 H 指数
摘要:本文讲解力扣 274 题「H 指数」的完整解题思路与多种实现方案。核心采用排序遍历法:将引用数组升序排序后,依次判断 citations[i] >= n - i,第一个满足条件的 n - i 即为最大 h 指数。文章给出标准解法代码、规范优化版本,并拓展了二分优化、计数排序(O(n))等进阶方案,最后复盘常见易错点并对比各解法的时间与空间复杂度。
2026-08-26 11:21:58
148
原创 Unity3D RPG 入门项目(十三)AI 对话气泡 UI、NPC 交互、大模型接入实战
本篇核心知识点:聊天气泡 Layout 布局自适应、左右分栏 UI 结构、发送交互逻辑、NPC 人设提示词控制、流式输出渲染、AI 智能体辅助开发、接入成本与面试避坑、项目答辩要求
2026-08-24 21:14:13
484
原创 Unity3D RPG 入门项目(十二)AI 对话系统、SSE 流式接口、编辑器工具
本篇核心点:AI 对话客户端分层设计、HTTP SSE 流式通信、JSON 序列化请求 / 响应体、SSE 分片解析工具、编辑器一键生成对话 UI/NPC 配置、聊天气泡左右布局、对话窗口交互逻辑、协程异步网络、消息上下文拼接原理
2026-08-24 21:12:26
584
原创 Unity3D RPG 入门项目(十一)主角完整战斗、怪物自动刷新、四大类型技能系统
本篇核心点:主角多战斗状态机、远近攻击分段移动逻辑、点击打断战斗、伤害防御保底计算、怪物批量定时刷新、生成区域随机偏移、四种技能(增益 / 强化 / 单体 / 群体)、技能 CD 遮罩倒计时、鼠标切换目标施法、buff 时效管理、技能打断机制
2026-08-23 13:34:10
263
原创 Unity3D RPG 入门项目(十)药品快捷栏、怪物 AI 战斗
本篇核心知识点:快捷栏物品类型枚举、药品回血 / 蓝校验、背包数量同步扣除、怪物三态 AI(巡逻 / 攻击 / 死亡)、怪物受伤闪烁、3D 头顶血条、闪避机制、追击 / 脱离判定、普通 / 暴击攻击逻辑、动画计时器防重复伤害
2026-08-23 13:31:25
173
原创 Unity3D RPG 入门项目(九)头像框、迷你小地图
本文系统介绍了游戏开发中3D角色头像、小地图及UI系统的实现方案。采用RenderTexture离线渲染配合分层摄像机实现动态头像框,对比分析普通Mask与自定义Shader遮罩的优劣;详细讲解了角色血蓝经验UI的数据绑定与按需刷新机制,以及基于循环计算的角色升级逻辑;提出正交相机小地图设计方案,包含比例尺换算、点击寻路功能实现;重点阐述Layer分层渲染技术对主场景、头像、小地图的隔离作用,包括NPC标记的单向渲染处理。整套方案涵盖从底层渲染到上层交互的全流程实现,适用于RPG项目的2D/3D混合UI开发
2026-08-17 22:47:41
212
原创 Unity3D RPG 入门项目(八)游戏设置面板、帧率控制、快捷技能药品栏、技能解锁系统
本文系统讲解了游戏UI核心模块实现方案:1)帧率控制通过Application.targetFrameRate实现三档切换,平衡性能与流畅度;2)自主FPS计算器精准统计帧率;3)快捷栏采用动态生成+拖拽复用架构,区分药品(保留原物品)与技能(生成克隆)逻辑,并实现重复道具拦截;4)技能等级解锁通过遮罩FillAmount控制交互权限;5)九宫切图(Sliced)优化UI缩放表现。所有模块基于通用模板开发,强调数据驱动与接口复用思想,配套高频Bug排查方案,可快速移植至RPG项目实现完整交互系统。
2026-08-17 22:45:55
326
原创 Unity3D RPG 入门项目(七)技能系统、Excel 配表解析、StreamingAssets 资源目录
本文系统介绍了Unity中技能系统的开发全流程,包括:1)基于BasePanel构建技能界面,复用商店/背包UI模板实现Scroll+Grid布局;2)解析StreamingAssets中的Excel技能配表(使用NPOI库),详解17个字段设计;3)对比Resources与StreamingAssets资源加载差异;4)通过枚举和实体类映射配置数据,实现按职业筛选技能;5)提出通用UI开发模板,标准化背包/商店/装备/技能等列表界面的开发流程。
2026-08-15 17:06:19
408
原创 Unity3D RPG 入门项目(六)完整装备穿戴系统、属性自动计算、断点调试
本文详细介绍了游戏装备系统的开发实现,包括八个核心模块:1.装备面板UI搭建:采用固定槽位设计,继承BasePanel实现动画效果;2.三重穿戴校验:检查物品类型、职业匹配和槽位状态;3.装备替换逻辑:旧装备自动返还背包,新装备放入槽位;4.背包同步更新:穿戴后扣除数量,空槽位重置标记;5.装备卸载功能:点击返还背包并重算属性;6.属性聚合计算:遍历槽位累加装备加成;7.断点调试技巧:使用VS附加Unity进程排查逻辑错误;8.系统数据互通:通过单例实现模块解耦。
2026-08-15 17:04:04
204
原创 Unity3D RPG 入门项目(五)装备配置、商店系统、玩家属性面板
文章系统介绍了RPG游戏开发中的核心模块设计与实现,包含:1)装备XML配置拓展与多类型解析技术,通过枚举实现药品/装备差异化处理;2)背包悬浮提示与拖拽交互优化方案,采用全局静态标记解决状态同步问题;3)商店UI构建与分类切换逻辑,实现配置驱动的动态商品列表;4)NPC交互与低耦合架构设计,分离界面入口与业务逻辑;5)玩家属性单例管理及UI性能优化,避免Update频繁刷新。全文贯穿MVC分层思想,强调通过数据驱动实现模块解耦,提供完整的物品购买业务链示例(配置→展示→交易→属性更新)及典型Bug排查方案
2026-08-15 17:02:34
281
原创 Unity3D RPG 入门项目(四)背包拖拽、物品悬浮提示、项目开发思维
本文系统讲解了Unity背包拖拽功能开发全流程,涵盖三大核心需求(物品跟随、层级遮挡、落点逻辑)、UGUI标准拖拽接口(IBeginDragHandler等)的实现方法,以及射线穿透(ICanvasRaycastFilter)解决检测遮挡问题。重点分析了三类落点处理逻辑(空格存放、物品交换、丢弃销毁)的代码实现与数据同步方案,并设计了鼠标悬浮提示面板的两种交互模式。文章强调开发前需完整梳理需求(如边界条件和数据分层),避免后期重构,同时规范AI工具仅辅助查API而非替代手写逻辑。最后提供高频Bug排查清单
2026-08-12 20:31:22
245
原创 Unity3D RPG 入门项目(三)鼠标管理器、功能 UI 面板、简易 UI 父类、MVC 架构、XML 物品配置、背包系统
本文系统介绍了游戏UI开发的核心技术方案。重点包括:1)多状态鼠标光标单例管理器,实现交互场景光标动态切换;2)MVC分层架构设计,分离数据模型、视图与控制逻辑;3)XML配置文件解析,动态加载物品属性;4)背包系统实现方案,包含格子预制、物品堆叠与自动扩容机制;5)通用UI父类封装,统一弹窗动画与状态管理。关键技术涉及单例模式、资源动态加载、数据驱动UI等设计思想,通过代码片段展示具体实现。文章还对比了不同方案的优劣,并提供Bug排查清单与进阶拓展方向,为游戏UI开发提供完整解决方案。
2026-08-12 20:29:36
340
原创 LeetCode 189 轮转数组
摘要: 本文介绍了力扣189题「轮转数组」的最优解法——三次反转法。该方法通过整体反转、前k个元素反转和剩余元素反转三步操作,以O(1)空间复杂度实现数组右移k位,时间复杂度O(n)。关键点包括对k取模(避免无效旋转)和严格的反转顺序。文中提供了标准C++代码示例,并对比了其他解法(如辅助数组法和循环交换法)的优缺点。此外,拓展了反转思想在字符串旋转等场景的应用,强调三次反转法是面试首选的最优模板。
2026-08-06 22:07:13
281
原创 LeetCode 169 多数元素
本文以LeetCode 169题"多数元素"为例,解析最优解法。题目要求找出出现次数超过半数的元素,保证存在解。最佳解法采用摩尔投票法,通过候选值candidate和计数器count实现:相同元素+1,不同元素-1,最终剩余候选即为答案。该方案时间复杂度O(n),空间复杂度O(1),仅需两个变量。文章对比了栈模拟(逻辑正确但空间O(n))、哈希统计(空间O(n))和排序法(时间O(nlogn))等替代方案,指出摩尔投票的空间最优特性。最后延伸讨论到n/3次数的变种问题
2026-08-06 22:06:29
215
原创 LeetCode 122 买卖股票的最佳时机 II
摘要: 题目122要求计算股票多次买卖的最大利润。贪心算法是最优解:遍历数组,累加所有相邻上涨的差值(如[1,5,3,6]中1→5和3→6的利润4+3=7)。时间复杂度O(n),空间O(1)。核心代码仅需一次循环:profit += max(0, prices[i]-prices[i-1])。与单次交易的LC121不同,本题无需记录全局最低点。动态规划也可解但更复杂,贪心在无手续费或冷冻期时效率最高。相关变形题需调整策略(如LC714扣除手续费,LC309需DP)。
2026-08-04 20:22:22
120
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅