- 博客(188)
- 收藏
- 关注
原创 win11系统,更新显卡程序后桌面亮度无法调节
在第二个驱动程序中点击回退驱动程序并确定,等回退完成(过程中屏幕会闪烁)后,即可恢复调节屏幕亮度。问题:一般在显卡驱动升级后,关机重启的时候,屏幕亮度会无法调节。右键开始图标,点击进入设备管理器,如下图。展开显示适配器,选中独立显卡,右键属性。
2025-02-27 14:27:10
240
原创 Win11系统右下角,wifi模块不显示或无法正常连接【解决方案汇总】
3.如果第二步的wifi驱动前面的小图标有更新提示,选择更新应用程序,否则先禁用再启用即可。:一般在系统更新后,由于软件驱动过旧或新版不稳定引起的wifi模块不显示。右键开始图标,点击进入设备管理器,如下图。展开网络适配器并找到Wifi驱动,如下图。
2025-02-27 14:18:52
296
原创 Unity开发——实现安卓手机和BLE低功耗蓝牙双向通讯(ESP32)
背景:项目是一款AR射击游戏,公司定制了一款基于ESP32的玩具枪,手机通过蓝牙连接方式实现游戏开枪射击的效果。
2024-12-10 13:41:18
243
原创 Unity开发——实现安卓设备之间的局域网通信
如题,由于项目运营环境是在景区和公园,网络状况会经常不好。之前设备之间的通信是通过4G网络,从一个设备发送消息走后台接口、然后后台再通知给其他设备,这种方式极易受到网络信号的影响,导致消息接收不到或者延迟高的影响。所以我采取另一种方式——局域网通信,来解决项目遇到的问题。项目需要互相通信的两台设备(1台手机和1台平板,都是安卓系统)是在同一局域网下的,两台设备都连接一个无线网卡。这样就满足了局域网通信的条件。手机充当服务器端,平板充当客户端。手机和平板连接同一局域网后,平板向手机发送消息,手机接收信息。
2024-12-02 16:13:36
466
3
原创 EasyAR 3D物体跟踪运行报错 Error: Error in opening OBJ file: file:///cola6/cola.obj
如图,想用EasyAR做一个模型识别的Demo,结果显示obj打不开,搞了半天不知道为啥?来个大佬看看是啥问题。
2024-07-08 15:52:25
264
2
原创 could not reparse object file in bitcode bundle: ‘Invalid bitcode version (Producer: ‘1200.0.22.8.0_
问题描述:unity导出项目iOS,使用Xcode打包编译时,出这个错误。问题翻译过来就是说 LLVM版本低,需要升级Xcode。
2023-12-10 18:18:28
289
原创 初识EasyAR
1.Easy AR Scene--适用于:图像、物体、 身边小区域、小房间--安卓、IOS、Nreal。2.Easy AR Mega--适用于:大空间(房间,商场,公园,景区,城镇等)、AR导航、元宇宙。2.3D物体(静止/运动)跟踪(注:物体旋转也可以实时跟踪,本人试过,效果还可以),多目标。1.表面、图片(静止/运动)跟踪,支持多目标。3.大地图(稀疏空间、稠密空间,可以建图)3.EasyAR CRS---云识别。
2023-11-22 16:27:42
337
原创 游戏内存优化
通过使用对象池,可以预先创建一定数量的对象,并在需要时重复使用这些对象,从而减少内存分配和释放的开销。3.内存分析和优化工具:使用内存分析和优化工具,例如Unity自带的Profiler,可以实时监控游戏的内存使用情况,找出内存泄漏和优化点,从而进行针对性的优化。总之,在Unity游戏开发中,内存优化需要从多个方面入手,综合利用各种方法和工具,从而尽可能减少内存消耗,提高游戏的性能和稳定性。在Unity游戏开发中,内存优化是非常重要的一环,因为游戏通常需要处理大量的数据和资源。
2023-09-14 14:38:42
680
原创 10种寻路算法
这也是一种适用于带权重的图的寻路算法,但与Dijkstra算法不同的是,Bellman-Ford可以处理图中存在负权重边的情况。:这是一种使用启发式方法来指导搜索过程的寻路算法,通常用于找到从起点到目标点的最短路径。:这是一种递归算法,它沿着图的深度遍历路径,直到找到目标或到达无法进一步前进的位置。:这种算法会扩展所有的节点,即按宽度优先的顺序,因此它通常用于搜索无权重图。:这是一种适用于带权重的图的寻路算法,它会找到从起点到所有其他点的最短路径。:这是一种用于寻找所有顶点对之间的最短路径的算法。
2023-09-09 15:31:16
6372
原创 客户端开发常用框架
这些框架可以帮助我们进行游戏的联机对战、排行榜、跨平台等功能的设计和实现。5.Unity的协程:Unity的协程是一种特殊的方法,可以在Unity中实现异步编程,让复杂的异步操作更容易被理解和控制。9.物理引擎:Unity使用的是Box2D物理引擎,可以进行真实的物理模拟,这对于设计游戏中的物理互动非常有帮助。6.Unity的序列化系统:Unity的序列化系统可以让游戏的数据在不同的平台之间同步和传输。8.Unity的动画系统:Unity的动画系统可以让我们更方便地设计和控制角色的动画。
2023-09-09 15:27:01
873
原创 C# 垃圾回收机制
具体来说,垃圾回收器会从应用程序的root对象出发,利用相互引用关系,遍历在Heap上动态分配的所有对象,没有被引用的对象不被标记,即成为垃圾,而存活的对象被标记,即维护成了一张“根-对象可达图”。完成标记后,垃圾回收器会启用压缩(Compact)算法,对内存中存活的对象进行移动,修改它们的指针,使之在内存中连续,这样空闲的内存也就连续了,这就解决了内存碎片问题,当再次为新对象分配内存时,垃圾回收器不必在充满碎片的内存中寻找适合新对象的内存空间,所以分配速度会大大提高。C#的垃圾回收机制原理是。
2023-09-09 15:24:30
527
原创 游戏性能优化
包括减少Draw Calls、减少三角面数、使用LOD、使用批处理技术、减少实时光源等,以提高游戏的帧率和渲染效率。包括使用对象池、使用合适的纹理、使用异步加载资源等,以减少内存占用和提高游戏的流畅度。包括使用正确的脚本编写方式、避免频繁的垃圾回收等,以提高游戏的逻辑处理效率和性能。包括使用正确的碰撞检测方式、使用物理引擎的最佳实践等,以提高游戏的物理效果和性能。包括使用正确的网络通信方式、优化网络数据包传输等,以提高游戏的联网效果和性能。
2023-09-09 15:22:13
694
原创 Unity游戏客户端进阶路线(只针对本人)
1.掌握,一般都会学C#,需要掌握C#编程语言的基础内容以及Unity3D的引擎配置。2.掌握,对使用的引擎有深入的了解,掌握它的特性以及局限性。3.熟悉游戏开发相关的,在功能实现中的使用。4.从框架层面来思考。5.理解队友写的代码,需要理解协作伙伴的策划、美术、音乐、运营、测试等方面的专业术语,和他们越顺畅,游戏最终成型的状态就会越理想。1:需要了解并掌握Unity的高级功能,如Shader、自定义渲染管线、光照模型、高级着色器、次表面散射等。2.
2023-09-09 15:15:41
1537
原创 单例和静态类
该类包含一个静态属性和一个静态方法。由于静态类不能被实例化,因此不能包含实例方法和实例属性。在上面的代码中,我们使用静态变量 instance 来保存单例实例,并通过静态属性 Instance 提供全局访问点。单例模式是一种设计模式,它确保一个类只有一个实例,并提供全局访问点。C#中的单例(Singleton)和静态类(Static Class)是两种不同的设计模式,它们各自有不同的用途和特点。静态类是一种特殊的类,它不能被实例化。静态类通常用于提供静态方法和属性,以便于在程序中共享数据或执行某些操作。
2023-09-07 23:31:58
746
原创 CPU和GPU性能优化
总之,优化CPU和GPU性能需要综合考虑多个方面,包括游戏逻辑、算法、Unity引擎和编辑器、图形渲染、并行计算和多线程技术等。在Unity游戏开发中,优化CPU和GPU的性能是非常重要的,可以提高游戏的运行效率、降低功耗和延迟,并提高用户体验。使用更高效的算法和数据结构,例如使用合适的数据结构来存储游戏对象和碰撞信息,使用动态规划来优化复杂的算法。减少不必要的计算和内存操作,例如避免频繁的分配和释放内存,减少不必要的数据结构和循环。减少Unity编辑器中的场景和游戏对象的数量,以减少内存占用和渲染时间。
2023-09-07 23:27:28
1105
原创 帧同步和状态同步
总结起来,帧同步确保在游戏中的每个时间点上玩家都执行相同的游戏逻辑,而状态同步确保所有客户端都具有相同的游戏状态。这两个概念在多人游戏中都是非常重要的,以确保游戏的公平性、一致性和流畅性。在状态同步中,服务器充当了游戏世界的“真相”来源,负责更新和同步游戏对象的状态,而客户端则接收并应用这些状态更新,以保持游戏的同步性。在帧同步中,所有玩家在每个固定的时间间隔内,比如每秒更新60次,同时接收并应用来自服务器的游戏状态更新,以确保每个客户端都具有相同的游戏进程和一致的玩法体验。
2023-09-07 23:15:33
294
原创 UGUI画布加载优化
Overlay模式是最简单的,但对于复杂的UI界面可能会引起性能问题,而Camera模式则可以更好地控制渲染顺序和视觉效果。通过将相邻的UI元素放在同一个画布下,并启用Canvas组件的"Override Sorting"选项,可以实现UI批处理。3. 合并UI元素:如果UI界面中有多个相同的元素(如按钮、文本等),可以考虑将它们合并成一个预制体,并重复使用。2. 使用UI对象池:如果你的UI界面需要频繁地创建和销毁,可以考虑使用对象池来管理UI对象的复用。对象池可以减少实例化和销毁的开销,并提高性能。
2023-09-07 23:02:06
481
原创 将一个数组元素打乱(洗牌算法)
这段代码使用了Fisher-Yates随机洗牌算法,通过遍历数组并与随机位置的元素交换来实现乱序。运行代码后,将输出一个乱序的数组。可以使用随机洗牌算法来将数组中的元素乱序。# 交换当前位置的元素与随机位置的元素。# 生成一个随机索引。# 遍历数组中的每个元素。
2023-09-07 22:59:16
247
原创 C# 协程的底层原理
协程的挂起和恢复通过异步操作来实现。当挂起条件满足时,异步操作会通知状态机恢复执行,并将保存的状态变量还原,从而实现协程的继续执行。在运行时阶段,协程的执行由编译器生成的状态机类来控制。当调用协程时,会创建一个状态机实例,并从协程的入口点开始执行。状态机根据当前的状态变量,在执行过程中切换不同的代码逻辑,实现协程的挂起和恢复。每个协程都会被编译为一个状态机类,该类包含了协程的状态变量和对应的代码逻辑。总结来说,C#协程的底层原理是通过编译器生成状态机类来控制协程的执行,利用异步操作实现协程的挂起和恢复。
2023-09-07 22:55:49
773
原创 常用设计模式
7. 组合模式(Composite Pattern):将对象组织成树状结构,可以以相同的方式处理单个对象和对象组合,比如游戏中的场景和场景中的物体。1. 单例模式(Singleton Pattern):用于创建一个全局唯一的对象实例,比如游戏中的资源管理器或者游戏设置。5. 命令模式(Command Pattern):将请求封装为一个对象,可以进行撤销和重做操作,比如游戏中的输入处理系统。3. 观察者模式(Observer Pattern):用于对象之间的消息传递和通知机制,比如游戏中的事件系统。
2023-09-07 22:53:04
681
原创 状态机和行为树
通过遍历行为树,对象可以根据节点的逻辑规则来选择合适的行为进行执行。它将对象的行为建模为一系列状态,通过定义状态之间的转换条件和动作来控制对象的行为。状态机由多个状态组成,每个状态表示对象在特定情况下的行为。状态机适合用于描述对象的状态转换和执行顺序,例如角色的各种状态(如站立、奔跑、攻击等)之间的切换和相应的动作。而行为树则适合用于描述对象的复杂行为决策过程,例如角色在特定情况下应该采取何种行为(如追逐、逃避、攻击等)。而行为树更加灵活可扩展,适用于描述复杂的决策流程和行为逻辑。
2023-09-07 22:51:07
1496
原创 Unity编辑器开发——特性(常用特性、自定义特性)
特性在Unity开发中是非常好用的。下面记录下我常用的C#预置的特性:(1)Int/Float(2)string(3)Enum(4)List(5)Range(滑动条,其实也是对Int/Float)(6)TextArea(文本框,其实也是对string)(7)Tooltip(添加悬停提示)
2023-06-27 11:36:41
910
原创 Broken text PPtr in file(Library/Unused/6d0812d687f60684088eded3bfe9f800). Local file identifier (47
如题。
2023-06-20 10:56:52
327
原创 .NET介绍
严格来说是不对的,与 Java 对应的是 C#,与 JVM 对应的是 CLR,与 JDK 对应的是 .NET Framework/.NET Core/.NET 5+ SDK。还有人把 .NET 等同于 .NET Framework 或 .NET Core。准确的来说也是不对的,.NET 是开发平台,.NET Framework 是在 .NET 平台上针对 Windows 系统实现的开发框架,.NET Core/.NET 5+ 是在 .NET 平台上实现的支持多操作系统的跨平台开发框架。1..NET是什么?
2023-06-16 14:17:13
1294
原创 Curl error 28: Failed to connect to10.13.25.23 port 15000: Timed out
1.发生原因:2.问题分析:
2023-06-16 13:43:58
907
原创 window10 更新提示 0x80073712错误
2、Win + S打开搜索,输入 CMD 找到 “5、重启电脑并重新检查更新,查看安装效果。,依次输入以下代码,并按回车执行。
2023-04-12 13:32:05
1781
原创 Unity 获取游戏对象各种情况
2.获取第n个子物体(n<子物体总数)4.获取Tag是xxx的第一个子物体。3.获取所有Tag是xxx的子物体。1.获取子物体(第一层)还有一些后续补充...
2023-03-28 16:08:39
218
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人