- 博客(106)
- 资源 (82)
- 收藏
- 关注
原创 UE5蓝图实战:动态墙上挖坑与自定义坑尺寸
在Unreal Engine 5.3中,我利用蓝图系统开发了一个创新的挖坑Demo,该Demo展示了如何在实时环境中动态地在墙体上挖坑,并允许用户自定义坑的大小。这一过程得益于UE5官方提供的Geometry Script插件,该插件通过蓝图接口实现了强大的网格布尔算法功能。文章中,我将详细介绍如何在运行时动态地进行挖坑操作。此外,我还将展示如何通过蓝图接口调整坑的尺寸,为游戏世界中的互动元素添加更多可能性。无论是对于建筑模拟、地形编辑还是其他需要动态网格修改的应用场景,本文提供的方法都将大有裨益。
2024-09-30 17:13:26 1274
原创 UE5蓝图实战:打造自定义摄像机视野控制
在虚拟仿真与可视化系统中,摄像机视野的控制至关重要。用户通常通过键盘的W、A、S、D键进行前后左右移动,使用Q和E键实现上下移动;同时,通过鼠标右键进行视角的旋转,并利用鼠标滚轮来调整视野的缩放。这篇文章将详细介绍如何在UE5.3中利用蓝图实现这些摄像机控制功能,帮助开发者创建更加沉浸式的虚拟环境体验。
2024-09-30 17:09:47 1440
原创 虚幻引擎Gameplay探索 Actor 之间的高效通信与交互技巧二
事件分发器适合需要广播事件的场景,能够让多个 Actor 响应同一事件,增强了系统的灵活性和扩展性。接口提供了一种灵活的方式为不同类型的 Actor 添加共同的功能。通过接口实现,可以减少代码重复,提高可维护性。事件分发器和接口都是实现 Actor 之间高效通信的重要工具。事件分发器适用于需要动态广播的场景,而接口则确保了不同 Actor 之间功能的一致性和可重用性。结合这两种方法,开发者可以构建出更具互动性和可扩展性的游戏系统。
2024-09-10 16:33:47 1125 1
原创 虚幻引擎Gameplay探索 Actor 之间的高效通信与交互技巧一
直接通信适用于简单的场景,当你需要直接与特定的 Actor 交互时非常有效。需要确保你有正确的引用。类型转换当你需要访问特定类的功能或属性时,类型转换是一个很好的选择。它允许你在运行时验证和访问 Actor 的特定功能。Actor 通信是虚幻引擎中实现复杂游戏逻辑的基础。通过理解和运用不同的通信方法,开发者可以创建出更加生动和互动的游戏体验。
2024-09-10 16:29:46 1218
原创 深入探索Unity协程:揭开CSharp迭代器背后的神秘面纱
Unity的协程的实现原理是基于C#语言的迭代器特性,通过定义一个协程函数(通过返回),将协程函数缓存为一个的对象,然后根据该对象的Current(是一个YieldInstruction对象或者null)来判断下一次执行需要间隔的时间,等到间隔时间结束后执行MoveNext执行下一阶段的任务,并继续根据新的Current确定下一次等待的时间间隔,直到MoveNext返回false标志着协程终止。理解了Unity协程的实现原理之后,我们完全可以自己写代码来实现类似Unity中的的效果。
2024-09-08 18:41:06 1499
原创 Unity使用自定义类型作为字典Key的最佳实践与避坑指南
代码层面出现bug的时候,很多时候还是一些底层的逻辑没有搞懂,平时还是要多测试多验证多了解原理。所以说在使用字典作为存储查询数据结构时还是建议使用不可变类型作为键,如何值类型(int、float等)或者常用的引用类型string。1.避免在字典操作期间修改键;2.作为键Key的对象需要重写并正确实现Equals和GetHashCode方法。通过,遵循这些原则,可以避免由于自定义类型对象作为字典键而引起的bug.
2024-09-08 18:38:53 1163
原创 个人知识管理工作流Obsidian笔记同步Github和个人博客xlog
于是,我觉得我需要学习更多的东西,学习后我希望能够分享出来,分享可以让思想产生多维的碰撞,在碰撞上可能产生新的火花,以此来用输出倒逼输入,所以我希望拥有一个可以分享的个人博客。由于SB 某sdn,说该文章违反它的社区规定,说白了就是格局so low,所以,不得不在此删减内容,而且用了人家的微信同步助手无法同步于此,不能同步也就算了,用个插件还不允许用,笑死。通过以上步骤,你可以建立一个高效的个人知识管理工作流,将 Obsidian 笔记同步到 GitHub 和个人博客 xlog。书写是为了更好的思考!
2024-09-01 12:43:58 1309
原创 Obsidian个人知识库搭建流程
Obsidian官网xlog【使用xlog搭建个人博客Step by Step】知乎【使用xlog搭建个人博客Step by Step】
2024-09-01 12:31:17 254
原创 Unity学习路线
编程语言基础C#语言基础:数据类型、变量、运算符、控制结构(循环、条件语句)、数组、集合等。面向对象编程:类、对象、继承、多态、封装、接口、泛型等。Unity引擎基础Unity界面与基本操作:项目创建、场景管理、游戏对象、组件等。Unity编辑器使用:Inspector面板、Hierarchy面板、Scene视图、Game视图等。Unity脚本开发入门:MonoBehaviour生命周期、脚本编写与调试。实战项目:简单场景与角色搭建基础游戏场景:地形、天空盒、光源等。
2024-09-01 12:27:15 2706
原创 Next level 笔记软件Obsidian的安装
按钮流程安装后第一次打开的页面是这样的,可以选择你需要的语言。点击Get Obsidian for Windows。
2024-09-01 12:17:01 270
原创 UE5 UMG UI编辑器工作流
1.在内容菜单(Content Browser)面板,点击添加(Add)或者右键空白处,依次选择用户界面(User Interface)/ 控件蓝图(Widget Blueprint)。2.在弹出来的窗口中,点击User Widget即可创建一个UI控件,可以自定义命名(规范一点可以命名为WBP_XXX)。
2024-08-26 16:57:14 1155
原创 虚幻引擎UE5入坑记
Unreal Engine 和Unity Engine作为目前主流的游戏引擎,各有优缺点。而我目前的工作还是以Unity开发为主,在使用Unity的过程中,总避免不了听到或看到过UE相关的东西,从开始的好奇到后面想要去学习它,但是,感觉UE的学习门槛有点高,毕竟我还没学过C++,一时间有点望而生畏。另一方面是因为在之前的工作中没有接触过,虽然也有计划要学习,但我可能想先把Unity搞好再系统学习UE,所有搁置了好久。
2024-08-26 16:56:18 1120
原创 使用xlog搭建个人博客Step by Step
首次体验xlog还是不错的,就搭建流程来看,确定挺快的,虽没有深入使用,但现在来说xlog功能也基本满足我对个人博客的要求,后续稳定了,打算买个域名。再结合自己使用笔记软件Obsidian整理的个人知识库文章托管到github上,并借助其他工具自动同步到xlog中。希望通过个人博客去记录与分享,去与人类建立连接,去找寻志同道合之人,去往诗和远方。
2024-08-18 12:18:32 395
原创 Unity如何查找两个transform最近的公共parent
Unity如何查找两个transform最近的公共parent,这个方法的时间复杂度为O(h),其中h为两个Transform的最大深度。因为我们是从顶层开始比较,所以可以在较短的时间内找到最近的公共parent。
2024-07-12 23:59:25 482
原创 Unity WebGL报错精选解决方案助你开发之路少踩坑
工作至今,基于Unity开发过不少WebGL相关的项目,踩过不少坑也遇到各种报错,所幸也都能找到合适的解决方案。网上资料零零散散,今天有感想在此做个关于Unity开发WebGL总结,一是给自己总结经验教训,二是温故知新,三是希望能够给道上的朋友带来些许帮助。当你准备使用Unity开发WebGL项目时,如果可以先看一下官方文档,也许会让你少走不少弯路哦。Unity官方WebGL开发入门文档,当然,你说你头硬不怕,直接上手干,那就希望上述问题的解决方法能帮助到你。
2024-07-12 11:42:37 2291
原创 深入了解Rokid UXR2.0 SDK内置的Unity AR Glass开发组件
Rokid SDK为Unity开发者提供了五大核心组件,分别是RKCameraRig、PointableUI、PointableUICurce、RKInput和RKHand。本博客将重点带大家了解各组件的关键属性以及如何使用这些组件开发AR场景。
2024-07-10 12:01:42 1877
原创 基于Unity3D的发布第一个Rokid AR眼镜应用
本文将演示如何基于Unity 3D发布一个Rokid AR 眼镜应用。内容包括Unity发布apk前的配置,搭建AR demo场景,创建一个Capsule放置在场景中,演示如何打包apk并按照到AR眼镜终端。最终运行能在眼镜里看到Capsule的一个demo应用,以表示基于Rokid的开发环境搭建成功。
2024-07-10 09:01:56 1849 3
原创 基于Unity3D的Rokid AR Glass项目开发环境搭建
UXR2.0 SDK是Rokid为Unity开发者提供的AR开发工具包,提供空间定位跟踪、双目渲染、手势交互等能力;本博客内容在Unity2020.3.48f1上测试基于Unity3D的 Rokid AR Glass项目开发环境搭建。
2024-07-09 15:54:17 2331 6
原创 基于Unity3D的Rokid AR Glass项目开发实战教程
本期博客内容将围绕Unity开展Rodid AR 眼镜应用开发学习。通过学习四个步骤(AR开发环境搭建、发布第一个AR眼镜应用、了解Rokid SDK的内置组件、AR交互功能开发)的内容,帮助更多开发者掌握基于Unity3D的Rokid AR Glass项目开发的技能
2024-07-09 15:52:58 1332
原创 Unity实现安卓App预览图片、Pdf文件和视频的一种解决方案
本博客通过搭建Demo演示场景,实现App内通过3DWeView for Android打开本地地址渲染本地图片、pdf文件和视频的一种解决方案,仅供参考。它还可以加载其他文件夹下的文件,也可以打开网上的在线资源
2024-07-08 18:44:14 1272 1
原创 关于Unity运行时动态修改材质的小秘密
美术那边给了三个材质球,让我动态加载物体时,切换该物体的材质,最开始想的方案是,直接把三个材质球加载的内存中,直接修改物体的材质球属性不就可以了吗。转念一想,这万一给我一百个材质球,或者更多,难道我都要加载到内存中吗?这显然是不行的。我一看这三个材质球只有一个地方是不一样的,那就是颜色和透明度。我就想了,那我直接获取物体材质球,直接修改材质球相关的属性不就完事了吗,于是就出现了本文中的一系列问题。
2024-06-30 18:52:47 2304 1
原创 一文读懂Unity性能分析工具:MemoryProfiler,教你轻松分析项目性能瓶颈
Unity 性能分析器 (Unity Profiler)的是一种可以用来获取应用程序性能信息的工具。本博客介绍了该工具的如何获取并使用的方法。并通过unity搭建demo演示了MemoryProfiler内存分析的流程,使用两个示例验证了项目中正常GC和不正常GC时内存分析的结果。由此可见使用性能分析工具MemoryProfiler对于我们分析项目性能瓶颈至关重要。
2024-03-29 22:35:07 5431
原创 基于Unity+Vue3通信交互的WebGL项目发布实践
本博客基于Unity+Vue3通信交互的WebGL项目发布实践做了一个测试demo演示unity与vue通过第三方插件**unity-webgl**通信的流程。分三步完成:1、搭建Unity测试项目并发布WebGL部署到Vue项目中。2、验证Vue向Unity发送信息:通过前端UI控制Unity游戏物体的显隐和修改颜色。3、验证Unity向Vue发送信息:Unity监听键盘空格键按下触发前端提示框的显示。
2024-03-29 16:30:29 6723 6
原创 Unity编辑器右键菜单实现多平台游戏资源打包—AssetBundle的构建
AssetBundle是Unity提供的一种打包资源的文件格式,比如模型、纹理和音频文件等的各种资源,允许使用WWW类流式传输从本地或远程位置来加载资源,从而提供项目的灵活性,减少初始应用程序的大小。这里将以PC、Android、WebGL为例,添加编辑器右键菜单创建AssetBundle过程进行演示。流程为:选择预制体——点击鼠标右键——选择打包Bundle选项——选择目标平台——选择输出文件夹——开始打包。仅供大家参考学习。
2023-01-18 17:58:57 2274 8
原创 Unity发布WebGL运行Js代码报错:‘Pointer_stringify‘ is obsoleted and will be removed in a future Unity version.
关于Unity发布WebGL运行Js下载文件的代码报错:The JavaScript function 'Pointer_stringify(ptrToSomeCString)' is obsoleted and will be removed in a future Unity version. Please call 'UTF8ToString(ptrToSomeCString)' instead。文章给出解决方法。
2022-12-29 16:12:45 2746 2
原创 关于Unity使用Aspose.Words.dll发布Windows平台后运行报错:Operation is not supported on this platform.说明
关于Unity使用Aspose.Words.dll发布Windows平台后运行报错PlatformNotSupportedException:Operation is not supported on this platform。通过调式定位错误,找出报错语句,最后得出解决方法。
2022-12-27 13:35:30 2156 2
原创 关于Unity使用ICSharpCode.SharpZipLib.dll发布WebGL平台运行报错:Encoding 936 data could not be found.
关于Unity使用ICSharpCode.SharpZipLib.dll发布WebGL平台运行报错:NotSupportedException: Encoding 936 data could not be found. Make sure you have correct international codeset assembly installed and enabled.**大概意思就是:无法找到编码936的数据。确保安装并启用了正确的国际代码程序集。根据我的项目实践经验得出三个解决方法,仅供参考
2022-12-26 11:46:35 1736 5
原创 关于Unity使用Aspose.Words创建表格单元格垂直合并不生效情况说明
最近在使用Aspose.Words.dll实现创建表格功能时,遇到了一个让我费解了好几天的问题——单元格垂直合并失效。我都快要怀疑人生了都,关键是它水平合并没问题,而且创建别的表格垂直合并也没问题;况且经过我反复测试,代码逻辑也是没有问题的,你说这气不气人,都快被我整出玄学来了。功夫不负有心人,终于在一个周末让我找到了问题的关键所在,最终解决了这个Aspose.Words创建表格单元格垂直合并失效的问题。仅以此博客记录,供新同学学习,避免踩坑!
2022-12-19 11:07:54 1927
原创 关于Unity使用Aspose.Words.dll打包报错The Assembly System.Security is referenced by Aspose.Words且exe无法运行
使用Aspose.Words.dll来操作word文件,在最后打包测试时发现打包报错,但是能打包成功输出exe文件,但是运行exe文件失败。通过分析程序集目标平台得出最后解决方法。
2022-11-03 16:36:41 1444
原创 【Unity小功能开发实战教程】图片资源在Xml文件中序列化与反序列化的一种解决方案
项目中有引用到外部图片资源的功能(由用户选择),而且当用户下次打开这个项目的时候也要显示用户上次使用过的图片,这就涉及到了一个图片数据的可持久化存储问题。由于项目中的其他数据是保存到XML文件中的,所以本博客仅此记录Unity实现在Xml文件中图片资源的序列化与反序列化问题的过程,并给出Demo验证。通过本博客,你将学习到如果计算图片文件的md5,以及如何将图片保存到xml文件中。
2022-10-25 15:32:31 1618 9
原创 关于Unity使用FileBrowser插件打包报错:The type or namespace name ‘IWin32Window‘ could not be found.说明
项目中有使用到Crosstales的插件FileBrowser(本地资源浏览器),将项目进行打包时出现错误导致打包失败。本博客是关于Unity使用FileBrowser插件打包报错:The type or namespace name 'IWin32Window' could not be found和 The type or namespace name 'Forms' does not exist in the namespace 'System.Windows' 说明
2022-10-24 15:25:08 1446
原创 【Unity小功能开发实战教程】在UI画布上画网格线
在大多软件中,网格线常常起到辅助线条的作用,像word中的网格线主要用来帮助用户将word文档中的图形、图像、文本框、艺术字等对象沿网格线对齐,并且在打印时网格线不被打印出来。接下来,我们就学习一下Unity中如何实现在UI画布上绘制网格线。
2022-10-12 13:42:27 3063 5
原创 【Unity小功能开发实战教程】重写MaskableGraphic实现UI图片圆角化功能
项目中有遇到实现UI圆角化的功能,在网上看了一下,普遍是用Shader来实现的。但感觉用网上的Shader实现的圆角化跟传统软件(PS、 Word、Maya、AE)上的圆角化效果不太一样。最终还是决定用Unity提供的方法去实现圆角化功能。其实只要了解了圆角化的构图原理,很轻松就可以利用MaskableGraphic去绘制UI圆角了。
2022-09-29 11:40:57 3284 29
原创 【Unity实战技巧】教你4招计算UI物体的包围盒(Bounds)
使用Unity做UI的框选、对齐等功能时常用到包围盒(Bounds)的计算。如果UI在无旋转的情况下,只要知道UI的中心坐标和其大小(UI矩形宽高)就很容易计算出它的包围盒;一旦UI经过旋转之后,此时的包围盒的size并不等于该UI矩形的宽高,所以是需要经过一定的数学运算才能求出此时包围盒的size。本人在实际开发过程中,总结了4种Unity中如何计算UI物体的包围盒的方法(分有无旋转两种情况),详见博客内容。......
2022-08-17 14:04:01 3142 16
原创 Unity实现UI的边缘检测和拖拽拉伸功能
最近赶项目,许久没写博客了。今天忙里偷闲,记录一下最近项目里遇到的一个功能——拖拽UI窗口边缘拉伸其大小,基本上现在的PC端的软件窗口都有这个功能。该功能效果就是需要做成跟Unity工具栏中的矩形工具的功能一样,当鼠标光标移入UI的各个边缘区域时显示不同的鼠标光标,并按下鼠标往不同方向拖拽拉伸时能实时调整该UI的大小。所以总结了以下两点需求: 1. 鼠标移入UI时作边缘检测算法,获取该边缘类型的标识。 2. 根据边缘类型,在拖拽时动态调整该UI大小。详细实现请看博客,方位不唯一,欢迎各位开发朋友一交流
2022-08-09 13:36:24 6206 25
原创 【Unity小功能开发实战教程】制作跟随倒计时变化的进度条
进度条的值如何跟倒计时关联?其实就是将这两者做一个映射关系:进度条的值是0到1,倒计时为 0到总时间;映射公式为:value/1.0f=倒计时剩余时间/总时间;根据这个公式就可以在实现倒计时的同时去实时更新进度条的值了。具体看博客教程.............
2022-07-07 10:05:55 4551 16
原创 Unity使用MaskableGraphic画一条带箭头的线
绘制箭头线段的原理:利用UGUI的MaskableGraphic类我们可以重写OnPopulateMesh函数来绘制多个矩形面片,让多个矩形组成一根带箭头的线段。在一个大矩形UI框内重画一个右箭头的原理是:由R1、R2、R3和R4四个顶点画出右箭头的头部下半部分小矩形;由R1、R5、R6和R7四个顶点画出右箭头的头部上半部分小矩形;由R4、R8、R9和R7四个顶点画出箭杆小矩形。这样,我们只需要用9个顶点信息绘制出3个小矩形来构成一个箭头样式的线段了。同理可画出左箭头和左右双箭头线段。详见博客。......
2022-07-05 09:56:11 4732 3
原创 Unity初学者肯定能用得上的50个小技巧
《Unity初学者肯定能用得上的50个小技巧》本博客基于Unity2018.4.36版本+Visual Studio2017版本,总结了本人在工作学习中使用Unity和写脚本的50个超实用小技巧。对于Unity新手来说掌握这些技巧一般也能熟练使用Unity编辑器了;对于Unity初级开发者来说,掌握这些脚本开发技巧,对于提升开发效率是有一定的事半功倍的效果的。......
2022-06-26 09:30:00 4347 23
原创 Unity实现鼠标拾取电脑屏幕指定区域像素点颜色
开发时常遇到要动态修改物体或UI的颜色的需求,且需要像Unity编辑器一样弹出颜色选择器来选择颜色。我选择使用第三方插件ColorPicker来完成取色的功能。但在使用过程中我发现用取色笔取色时不能拾取屏幕外颜色。所以修改了源代码取色笔的功能,采取了.Net类库System.Drawing截取图像并转为Unity支持的纹理图像Texture的方法,将图像显示到颜色面板上,再利用texture.GetPixel方法获取该图像中心点像素颜色。满足了取色笔的功能,仅以此博客记录Unity取色笔功能的开发过程。..
2022-06-14 09:22:02 4213 32
Rokid AR应用开发免配置UnityPackage
2024-07-09
unity计算UI包围盒的四种方法
2022-08-16
unity简单自定义路径寻路插件SimpleWaypointSystem,有寻路demo
2022-05-03
Unity的Shader基础知识
2022-04-08
MonoBehaviour常用方法解释.docx
2022-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人