自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 你的粒子效果为什么会被UI背景版渲染影响?UI Particle插件推荐

文章摘要:在Unity中实现UI粒子特效时,深色背景会遮挡粒子效果,原因在于UGUI渲染顺序(RenderQueue)和深度测试(ZTest)机制。UI默认渲染队列(3000/4000)高于3D粒子(2000/3000),且不同渲染通道隔离导致排序无效。解决方案是使用UIParticle插件,它通过禁用原生3D渲染器,将粒子数据烘焙为UI网格,使其融入CanvasRenderer通道,从而通过层级关系自由控制显示顺序。操作时只需为粒子系统添加UIParticle组件即可实现与UI的无缝整合。(149字)

2026-07-30 14:00:00 179

原创 Unity UI 是怎么做成工业化的体系的

本文系统解析了Unity游戏UI适配的三层体系:Canvas层(整体缩放)、容器层(锚点布局)和内容层(Pivot定位)。核心要点包括:1)CanvasScaler的ScaleWithScreenSize模式配合Match参数实现全局适配;2)容器元素使用拉伸锚点填满屏幕,内容元素保持固定尺寸;3)Pivot控制元素的定位基准与变换中心。文章通过对比横竖屏适配策略、分析二次元游戏工业实践,总结出"容器拉伸填满屏,内容固定保美型"的设计原则,并指出常见误区与优化方案,为开发者提供了一套完整

2026-07-29 14:41:09 334

原创 如何利用粒子系统在unity制作一个烟花(粒子系统学习向)

本文介绍了如何在Unity中使用粒子系统制作烟花特效。教程分为两部分:发射轨道粒子和爆炸花蕊粒子,通过两个ParticleSystem实现。发射部分设置单粒子发射、锥形角度和速度衰减,利用SubEmitter在粒子消亡时触发爆炸效果;花蕊部分采用球形喷射范围,设置随机大小和颜色变化,并添加尾翼效果。文章详细解析了粒子系统的8个核心模块:Main(基础属性)、Emission(发射控制)、Shape(发射形状)、Size变化、Trails(拖尾)、SubEmitters(子发射器触发)、Renderer(渲染

2026-07-29 14:03:52 233

原创 Unity游戏开发中面试里的到底为什么要这样提到装箱拆箱?

摘要:Unity游戏开发中,装箱拆箱是常见面试考点但常被质疑实用性。文章通过本地化系统中的多语言文本处理场景(如"击败敌人耗时{0}秒"需插入不同类型数据),解析object[]参数的必要性:虽然值类型传递会导致装箱产生GC压力,但其开发效率优势远大于低频UI更新的性能损耗。建议在本地化等低频场景坦然使用object[],在每帧更新的热点逻辑中改用强类型方案,并通过Profiler验证优化。装箱拆箱是Unity开发中需权衡性能与维护性的典型场景。

2026-07-27 14:24:07 439

原创 Mask组件的作用和sprite如何控制延伸

【摘要】本文介绍了Unity中Image组件的Mask功能及Sprite编辑器的使用技巧。挂载Mask组件后,子物体会被限制在父物体范围内显示。对于需要拉伸的按钮图片,通过Sprite Editor进行九宫格切分(设置绿色边界线),中间区域可自由拉伸而保持四角不变。操作步骤包括:1)将图片设置为Single模式并应用;2)使用Sprite Editor划分拉伸区域;3)将Image类型改为Sliced。这种方法能实现按钮长度拉伸时仅延展中间部分,保持两侧圆角等特殊形状不变形。

2026-07-08 11:05:17 168

原创 公式化配置Canvas和panel,仅需公式化的三步让你的UI任何分辨率下都基本适配

文章摘要:本文探讨了Unity中UI自适应不同屏幕分辨率的解决方案。通过分析CanvasScaler组件的两种核心模式(ConstantPixelSize和ScaleWithScreenSize),提出了一套工业化UI适配方案:以1920×1080为参考分辨率,设置CanvasScaler的Match值为0.5,创建全屏拉伸的背景Panel作为定位基准,子UI采用固定锚点布局。这种方案通过折中缩放策略和模块化设计,在保持UI元素相对位置的同时,能够适配绝大多数屏幕比例,实现"一次设计,多端适配&q

2026-07-06 18:45:10 279

原创 Unity 实战:基于属性访问器(get/set)的持久化数据与 UI 联动架构

本文提出了一种Unity数据持久化架构方案,通过三层解耦解决传统存档代码难维护的问题。核心设计包括:1)数据层采用单例GameData集中管理所有存档数据,通过属性访问器自动读写PlayerPrefs;2)视图层UI仅展示和交互,不直接操作存储;3)遵循三大法则:即时存储(数据变更立即保存)、显示前加载(UI打开时读取最新数据)、运行时自用(UI生命周期内使用内存数据)。该架构将变化隔离在数据层,使UI层完全不感知存储细节,便于后期扩展和维护。

2026-07-03 19:00:28 273

原创 Unity实战:基于ScriptableObject注册表的UI架构——Manager与Page的ID联动机制详解

本文介绍了一种基于ScriptableObject的工业级UI管理架构,通过注册表、管理器、视图层三要素实现解耦与高效管理。核心思路是:1. 使用ScriptableObject作为数据注册表存储ID与预制体映射;2. UIManager通过ID驱动界面创建与管理,内置对象池优化性能;3. 视图层通过统一基类提供身份标识。该架构优势包括:配置与代码分离、自动资源匹配、内置缓存机制、彻底解耦业务模块,使UI系统具备强健壮性和可扩展性。典型调用流程展示ID驱动的界面创建过程,适合商业项目采用。

2026-07-02 19:03:14 367

原创 QFramework UIKit:告别Find与GetComponent,让UI仔更加简单上手

本文介绍了Unity开发中常见的UI组件引用问题,以及QFramework提供的UIKit解决方案。UIKit通过Bind组件标记需要引用的UI控件,一键生成对应的C#代码,包含组件引用和生命周期方法,实现UI自动化管理。其核心优势包括:彻底告别手动Find和GetComponent、UI结构调整不影响代码、提供完整生命周期方法、支持任意组件类型。工作流程简单,只需标记Bind组件后生成代码即可。最佳实践建议完全依赖自动生成机制,避免手动修改设计文件。UIKit能显著提升UI开发效率,将开发重点从&quot

2026-06-30 14:22:43 216 1

原创 拒绝数据变化更新UI用update,unity属性访问器get set使用说明

本文介绍了使用属性访问器替代委托和update方法处理数据变化的优势。通过示例代码展示了属性访问器如何将数据变更与UI更新、持久化存储等操作绑定,在属性被读取(get)或赋值(set)时自动执行相关逻辑。这种方法避免了轮询的性能消耗和委托的繁琐管理,只需对公共属性进行操作即可触发完整的数据处理流程。作者建议将核心逻辑封装在属性访问器中,保持私有变量不对外暴露,并提醒注意存档时可能因大小写问题导致的错误。属性访问器实现了数据变更与相关操作的自动同步,提高了代码的可维护性和响应效率。

2026-06-25 19:01:18 219

原创 纯数据层解耦最好的工具SO(ScriptableObject)小白教程

本文介绍了Unity中的ScriptableObject(SO)的基本概念和使用方法。SO是Unity原生数据资源基类,用于存储静态配置数据,不依赖GameObject,适合解耦数据层。创建SO需要继承ScriptableObject类,添加[CreateAssetMenu]特性并定义可编辑字段。通过将.asset文件拖拽到脚本字段即可在代码中使用SO数据。SO解决了纯C#类无法在编辑器直接编辑的问题,是游戏开发中数据管理的重要工具。

2026-06-16 08:00:00 222

原创 大厂游戏开发代码解耦的架构使用说明和小白教程

本文介绍了Unity游戏开发中角色控制系统的全解耦架构方案。通过将代码拆分为五大层级(定义层、数据层、物理逻辑层、事件层、表现层),解决传统单脚本方案导致的代码臃肿问题。核心思路是:物理逻辑层作为唯一主动Update的驱动源,通过事件机制被动触发其他层级更新;数据层使用ScriptableObject实现可视化配置;各层级通过事件通信实现松耦合。文中提供了完整代码示例,展示了从状态定义、数据配置到物理计算、事件触发再到动画表现的全流程解耦实现,特别强调物理层负责状态计算和事件触发,表现层通过订阅事件实现被动

2026-06-15 21:15:58 235

原创 马上毕业了给各位本科计科生几个建议

首先今天是6月9号各位考生已经考完了吧这里祝大家金榜题名,我们这届22的也是要即将踏入社会,作为一个非常普通的双非软件工程大学生我清楚自己只是一个普通人,不过也是尽了自己的力去励志做一个好学生,不过现实还是打了我一顿,现在的就业环境确实不好,作为一个有实习经验有英语六级,拿过奖学金的学生在就业市场在现在找不到一个自研双休的工作,不过至少找到了一个双休的工作,现在回顾自己大学生活就这样的过去有点不舍但给各位即将步入大学生活的新人和已经在大学的兄弟们几个自己的教训和建议。

2026-06-09 08:05:47 204

原创 你的代码用ai为什么出错,12大规则教你如何降低你的错误率

其实经常使用ai的人知道ai最致命的短板是在不清楚概念和代码情况下,擅自做假设。今天不聊别的unity引擎的东西,今天聊聊ai,随着mcp的流行,已经有部分程序员已经完全进行利用mcp进行编写代码,因为mcp有这浏览文件夹里面的文件在精准获取信息进行修改的能力,这使得程序员对代码错误率降低很多,但是在面对大量复杂代码,一坨屎山的情况下,ai的错误率将会以指数上升,我今天给大家推荐一个.md的目录repo,大家可以放入自己ai本地化程序的规则文档在每次使用执行一次说明。7严格遵守原开发代码风格甚至你不同意。

2026-05-18 08:04:16 279

原创 C#链接springboot无法连接但关闭网站8080端口被占用解决方法

文章摘要:本文记录了将BS网站迁移到上位机实现交互时遇到的技术问题。作者在尝试通过Maven打包和C#链接实现SpringBoot在上位机运行时,发现SpringBoot的debug弹窗无法正常显示。经过多次调试发现,问题出在进程启动配置的重定向设置上。通过修改ProcessStartInfo参数,将UseShellExecute设为true并禁用重定向后,成功实现了上位机按钮与SpringBoot库的连接。关键解决方法是正确配置javaw进程的启动参数,特别是处理标准输出和错误的定向问题。

2026-04-22 23:54:40 25

原创 Unity如何实现如三A游戏的异步场景加载

是否好奇各个中传送时的加载界面是如何实现的?明明在切换场景,却能用一个动画界面完美遮挡后台的加载过程,进度条还能平滑增长?本文将带你从零实现一套完整的异步场景加载系统,支持过渡场景、动态进度条、超时保护,且完全兼容按钮点击切换。

2026-04-21 00:24:34 422

原创 什么是shader?教你明白shader到底是什么?

本文介绍了Unity开发中Shader的基础概念和使用方法。Shader作为着色器,是控制游戏物体最终渲染效果的GPU指令集。文章重点讲解了Shader与Mesh、Material三个核心组件的关系:Mesh提供模型基础结构,Material负责上色,Shader则定义材质质感。通过创建标准Shader(Standard),开发者可以调整渲染模式、主贴图组(Albedo、Metallic等)、自发光(Emission)等参数,实现不同材质效果。文章还简要说明了Unlit和StandardSurface两种

2026-04-18 22:58:47 974

原创 Unity也能使用语音跟ai聊天了?Whisper + NobodyWho 小白教程教你如何在unity实现llm的搭建

Unity也能使用语音跟ai聊天了?Whisper + NobodyWho 小白教程教你利用多个插件如何在unity实现llm的搭建实现ai语音聊天

2026-04-17 12:16:35 338

原创 语音转文字脚本

本文介绍了一个基于Unity的语音交互系统实现方案。系统整合了Whisper语音识别和NobodyWho对话AI插件,主要功能包括:通过麦克风录制用户语音(最长30秒),实时显示录音进度条;将语音转为文字后显示在玩家输入框,并带有打字机效果;调用AI评委生成回复,在独立文本框中逐步显示响应内容。代码结构清晰,包含录音控制、语音识别、AI交互和UI更新等模块,实现了完整的语音输入到AI响应的交互流程。系统还提供了调试快捷键和性能统计功能,适用于需要自然语言交互的Unity应用场景。

2026-04-17 12:13:09 178

原创 简单免费的ai客户端平台5ire接入unity mcp小白教程

本文介绍了如何使用5ire平台作为Cursor的替代方案进行MCP开发。首先需配置UnityMCP环境并下载Ollama模型(推荐Qwen3.5:9b),然后安装5ire客户端并连接本地Ollama模型。通过设置远程URL(http://127.0.0.1:8080/mcp)完成UnityMCP与5ire的对接,最后通过输入指令测试AI调用工具功能。文章还提示了内存要求、下载加速方案及其他模型兼容性等注意事项,为开发者提供了完整的MCP开发解决方案。

2026-04-09 19:56:07 422

原创 Docker 沙盒,拒绝复杂环境配置让项目在其他电脑运行!

摘要:本文分享了将SpringBoot项目Docker化的完整过程。作者耗时8小时解决了镜像拉取、Maven依赖、数据库连接、中文乱码等常见问题。详细步骤包括:1)创建Dockerfile配置Maven和JDK环境;2)构建镜像时的断点续传技巧;3)数据库移植方案;4)解决中文乱码的UTF-8配置方法。最终实现了包含MySQL数据库的完整容器化方案,通过docker-compose一键启动。文章特别强调了版本对齐的重要性,并提供了容器内字符集设置的多种解决方案,帮助开发者快速实现项目沙盒化部署。

2026-03-31 13:44:20 392

原创 本地化部署deepseekr1模型实现unity mcp 0token

本文介绍了在本地部署DeepSeek-R1-7B大模型的完整流程。首先需要RTX4060显卡(8GB显存)、16GB内存等硬件配置,然后通过Ollama工具拉取模型,配合CherryStudio实现可视化调用。详细步骤包括:1)安装Ollama并配置环境变量;2)下载7B参数模型;3)在CherryStudio中设置本地模型服务;4)最终可连接Unity游戏开发。该方案完全本地化运行,无需依赖云端服务,特别适合游戏开发者使用。文中还提供了相关工具的下载链接和配置指南,即使是初学者也能按照教程完成部署。

2026-03-23 19:04:10 512 1

原创 Unity 小白必看:Event Trigger 组件全解析!对比 Button / 射线检测,一文搞懂

本文详细讲解Unity中EventTrigger组件的使用,帮助新手解决UI交互问题。EventTrigger作为通用交互组件,可监听点击、悬浮、拖拽等多种事件,适用于UI和3D/2D物体。文章对比了EventTrigger、Button点击和手写射线检测的差异,指出EventTrigger无需编写底层逻辑但缺乏默认视觉效果。特别针对3D物品拾取场景,比较了EventTrigger点击拾取和射线检测按键拾取两种方案,推荐游戏开发中结合使用。

2026-03-11 10:24:48 464

原创 unity传送的特性-为什么你的代码会传送失效

本文分析了Unity游戏中传送功能失效的常见原因及解决方案。当直接修改Transform.position时,物理引擎和角色控制器会在后续帧覆盖设置,导致玩家位置被"拉回"。主要原因包括刚体速度残留、角色控制器内部逻辑、帧时序问题以及其他脚本干扰。可靠解决方案包含四个关键步骤:1)禁用并重新启用角色控制器;2)重置刚体速度;3)延迟一帧验证位置;4)使用协程确保时序安全。文章提供了完整代码实现,通过综合处理这些因素,可实现稳定可靠的传送效果。

2026-03-10 14:51:28 413

原创 unity mcp顶级插件小白教程7步即可做到不用代码也能做游戏,

什么是mcp,我们又该如何利用七步的方法实现mcp的配置安装和使用如何操作,

2026-03-05 22:36:57 490

原创 unity引擎国区将在3.31日完全封锁海外资产商店

总结:各位独立开发者,游戏学习者还是跟我一样的公司🐂🐴尽快做好规划,资源在3.31会关闭,如果可以及时下载以unitypackage方式存储,如果大家以后缺少资源这里懒狗程序员推荐几个网站一些免费的素材建模动作可以找找,1:mixamo(alobe推出的人物动作建模网站)2:sketchfab(cc标准建模包下载导入可以使用)3:TURBOSQUID(这个适用Blender但付费较多)后面会出新的博客解决该问题。

2026-03-03 10:04:06 88

原创 企业git图形化管理TortoiseGit使用技巧

TortoiseGit是一款简化Git操作的Windows工具,它通过资源管理器右键菜单替代命令行操作。安装时需要同时安装Git,配置好密钥和邮箱后,在文件夹创建版本库会生成.git目录。操作流程遵循提交(commit)-拉取(pull)-推送(push)三步原则,通过右键菜单完成版本控制。推送前需设置远程仓库URL,成功后会显示完成标记。该工具特别适合企业项目管理,能自动处理.gitignore文件,支持大文件上传,简化了GitHub仓库管理流程。

2026-02-06 10:32:24 299

原创 总结一下unity就业和面试神奇经历(顺带增加几个高频面试考点)

第一次面试是面试上海的unity timeline动画师可以说是大失败,当时其实早知道侧重是动画而不是unity组件的timeline 运镜剪辑我也不会投🥺,面试时候问我自身有没有timeline的一些作品我给他看了,hr觉得不行🙅:😡😡感觉做的动画时长太短了,要长点然后给了素材让我做,但是尴尬的是没有动作素材😰,不是让我手k帧啊😱,后来交上去一份类星球大战的一段动画片段但是因为全用的网上mixamo的动画素材fbx衔接可以说非人类最后还是考核失败寄了早知道是动画师我就不投了。这有啥作用不就是用

2026-01-31 12:04:19 622

原创 继承monobehavior是为什么?

在Unity中,继承MonoBehaviour的类本质上是引擎的“组件”,它必须挂载在游戏对象上,由Unity引擎自动管理其生命周期(如调用Awake、Update),并能直接访问和操作游戏世界中的Transform、刚体等具体元素,充当与场景交互的“感知器官”和“执行器”。而不继承MonoBehaviour的普通C#类则是纯粹的“逻辑单元”,它独立于游戏对象存在,不享有引擎的生命周期,也无法直接获取游戏对象,其核心职责是封装算法、处理数据、做出决策等与具体场景无关的“计算大脑”。

2026-01-15 11:34:19 288

原创 炫酷的过场动画?四分钟教你timeline基础

当我们创建了一个时间线后我们会在获得此页面,将物体子物体拖入左下角,也就是+号下面的留白区域会有这样的选项,我们分别说明一下,常见的使用activation track是最常见的显示时间线,我们可以在时间线控制物体的显示,超过时间就会默认隐藏,animation track 将此物体设置此track 可以涉及对应的动画,注意这个设置后animator controller的动作将会被改变所以不建议一起使用除非手动控制,不过可以通过旋转调整不同视角的运镜打到效果。作用:在特定时间点发射信号,触发自定义逻辑。

2025-11-07 08:38:37 668

原创 小东西写协程被拷打了[特殊字符]

大家在写代码的时候一定要多学多看委托,无论是action,还是自定义委托delegate还是利用sceneloaded这种场景加载的,之前写代码关于玩家成就代码当时是使用dontdestroy的单例控制来到新场景检测成就更新,结果当时不会用onsceneload+=sceneloaded 功能用的携程持续检测那个场景是否切换导致被揪出来拷打了一顿,大家要记得非必要不要用沟槽的延迟函数invoke和携程除非因为时序问题需要持续检测验证,等要内存优化就老实了😭。

2025-10-20 10:08:14 203

原创 unity photon 大部分被引擎销毁的原因

这几天一直在制作相应的pun 2服务器制作联机模式结果生成玩家instantiate生成时候出现一些问题 photon view 丢失物体物体was destroyed by engine ,我查了下论坛都有人谈及这个问题但都没什么作用,我通过排除法排除了组件的问题最后把问题锁定在了任务脚本,为什么任务脚本去除后就能正常生成了呢?

2025-10-20 09:56:42 321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除