- 博客(56)
- 资源 (16)
- 收藏
- 关注
原创 Unity GPU瓶颈一定能用上的降低Draw Calls方法----2D和3D
Draw Calls是影响GPU性能的主要因素之一,过多的Draw Calls会严重影响渲染效率。
2025-03-13 14:39:08
406
原创 手机屏幕摔不显示了,如何用其他屏幕临时显示,用来导出资料或者清理手机
用鼠标和键盘控制手机选择需要备份的内容,备份到外部储存(插入的U盘)或者别的方式都可以。然后准备一根高清线,一端链接电脑显示器,一端插入拓展坞。把拓展坞的连接线,插入手机充电口(可能会需要转接头)这样你的手机界面就同屏到电脑屏幕上了。按下键盘数字小键盘区的Num键。然后就在键盘上输入手机锁屏密码。然后按回车键(Enter)插入有数字小键盘区的键盘。
2025-03-07 15:05:25
909
原创 Unity Shader 语义总结笔记
混合模式是透明和特效渲染的核心,选择合适的混合模式能够优化性能并实现所需效果。`ZWrite` 控制是否将片元的深度值写入深度缓冲区。开启深度写入时,片元的深度值会被更新到深度缓冲区,这对于正确处理物体的前后关系至关重要。关闭深度写入时,片元的深度不会被更新,但依然可以进行深度测试,用于一些特殊效果,如透明物体的渲染。
2025-03-06 14:22:58
1012
原创 Unity 内置渲染管线各个Shader的用途和性能分析,以及如何修改Shader(build in shader 源码下载)
Legacy就是遗留的意思,老木乃伊了,非必要不用,Particles路径下的shader的优化版都在Mobile/Particles,适用于桌面设备或较旧的 Unity 项目,支持较为复杂的光照和粒子效果,但性能可能不适合移动设备。这些着色器通常计算简单,旨在提供快速的渲染性能,适应移动设备的性能和内存限制。简化的工作流程:Unity 已经为常见的自然环境材质(如树木、草地、水面等)提供了预制的着色器,开发者可以直接使用这些着色器,而不需要编写复杂的自定义着色器,快速开发自然环境。
2025-03-03 10:03:26
1132
原创 Unity 优化封装常用API和编辑器扩展工具包
资源名:WXTools。包括MeshRenderEditor,SpriteGroupToo,lWXEditorUtils,DtaUtils,GmeObjectUtils,RigidbodyUtils,StringUtils,TransformUtils,VectorUtils,WXTools
2025-02-28 13:36:29
358
原创 [算法] 苏醒!20种时间复杂度和空间复杂度
时间复杂度是指算法执行所需的时间与输入数据规模之间的关系,通常表示为T(n)=O(f(n)),其中n是问题的规模,f(n)是问题规模n的某个函数。T为“time”的意思。随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同(正相关)。**空间复杂度记做S(n)=O(f(n)),其中n为问题规模,f(n)为语句关于n所占存储空间的函数。空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度,同样反映的是一个趋势,通常用大写字母O来表示。
2025-02-28 10:57:47
1037
原创 Unity Wireframe Shader线框渲染效果的四种方案----看这一篇就够了
WireframeRenderer 优化后的脚本在性能方面明显优于 WireframeShader: - 网格和内存优化:WireframeRenderer 在网格处理和内存管理上做了更多优化,避免了每帧都重新生成网格和材质。 - 材质更新与渲染开销:WireframeRenderer 只在需要时更新材质,避免了无谓的材质创建和更新。 - 组件创建与销毁:WireframeRenderer 通过智能管理组件的创建和销毁,减少了不必要的资源浪费。
2025-02-25 11:00:04
425
原创 Unity 适用于单机游戏的红点系统(前缀树 | 数据结构 | 设计模式 | 算法 | 含源码)
参考链接:https://blog.youkuaiyun.com/linxinfa/article/details/121899276。如果子节点有红点,父节点也要显示红点,父节点红点数为子节点红点数的和;这样当SongBtn_Event有红点的时候SongBtn也会有。当所有子节点都没有红点时,父节点才不显示红点、当子节点红点更新时,对应的父节点也要更新;SongBtn_Event,//子节点。3.不带数字但是红点上显示感叹号的。SongBtn,//父节点。2.不带数字只显示红点的。把这三个脚本复制到项目中。
2025-02-21 10:16:10
515
原创 Unity IDE(代码调试编辑器)选择Visual Studio还是Rider?(带使用教程)
我是刚开始用了几年vs然后试用了一下Rider,两天不到就又回vs了,又过了一段时候再次使用rider,再也回不去vs了,用rider几年了,记录一下怎么开始用rider。Unity专用优化:Rider对Unity开发有专门的优化,提供了很多Unity特定的功能,比如更好的脚本浏览、项目导航和Unity API的智能提示。Unity集成:VS与Unity的集成非常紧密,可以直接从Unity中打开VS进行调试,提供丰富的调试功能。内置调试功能:Rider也提供强大的调试功能,并且有内置的Unity调试支持。
2025-02-21 09:43:08
1202
原创 Unity 三个滑动列表的插件Optimized ScrollView Adapter,EnhancedScroller,FancyScrollView的使用心得
UI效果优先,少量数据:如果主要关注界面效果和动画,且数据量相对较小,推荐 FancyScrollView,它的美观和流畅性是最大的亮点。总结: 如果你的项目更加注重UI效果和用户体验,FancyScrollView是一个不错的选择,但它可能不适合数据量非常庞大的情况。快速开发,简单自定义:推荐 EnhancedScroller,易于上手,适合中小型项目,性能和效果都有很好的平衡。总结: 如果你需要处理大量数据,特别是当数据项变化频繁时,OSA是非常强大的选择,适合性能要求较高的应用。
2025-02-20 11:35:39
523
2
原创 Unity解决安卓打包各种报错Compilation failed,Gradle build fail,顺便提供解决类似问题思路;(包解决,看完没解决,按照文章要求把报错信息打在评论区,经常在线解决)
Gradle build failed.See the Console for details.或者Compilation failed; see the compiler error output for details第一条Starting a Gradle Daemon, 3 incompatible Daemons could not be reused, use --status for details不用看 What went wrong
2025-02-14 14:54:20
1082
4
原创 Unity Behavior Designer - Behavior Trees for Everyone(行为树)为什么称作AI 的“基石”之一
这两个不同的任务位于行为树的两个不同分支中,因此它们彼此不了解,并且可能同时播放音效。在最高级别,行为树用于 AI,而有限状态机 (FSM) 用于更通用的可视化编程。虽然你可以使用行为树进行通用可视化编程,使用有限状态机进行 AI,但这并不是每个工具的设计目的。Behavior Designer 是 Unity 中一个用于创建行为树的插件,主要用于 AI 和 NPC(非玩家角色)的行为管理。创建一棵能够对各种情况做出反应的行为树更容易,而使用有限状态机则需要大量状态和转换才能获得类似的 AI。
2025-02-13 14:21:36
448
原创 [Unity]双端代码混淆使用Obfuscator Pro插件
把下载下来的资源包Obfuscator Pro 5.X.0.unitypackage导入Unity。
2025-01-14 13:54:38
256
原创 Unity修改模型(MeshRender)的渲染顺序(SortingLayer和sortingOrder)显示在UI之上
有时候我们需要把模型(MeshRender或者别的)显示在UI之上,比如有些UV特效,但是MeshRender不像粒子一样可以修改SortingLayer和sortingOrder,想要显示在UI之上就要调整这两个参数和所在Canvas一样的层级。创建一个MeshRenderEditor脚本把下面这个代码放在Editor文件家下,然后你的MeshRender面板就会多出两个属性。没改之前是MeshRender是这样的。然后就可以按照自己的需求调整层级了。就可以发现模型按照想要的层级显示了。
2025-01-09 10:40:58
295
原创 [算法] 黑塔转圈圈问题讨论
此外,黑塔女士的天赋,会在敌人的生命值首次降低到初始值的二分之一(向下取整)时,立即发动追加攻击,对所有敌人造成一点伤害。首先将敌人血量全部削减为
2024-12-26 16:34:32
399
原创 Unity 碎片化空间的产生和优化
分区分配:一些操作系统会为不同用途(如堆、栈、全局变量)分配固定区域,导致这些区域中未使用的部分变为碎片。分页机制:操作系统通过分页管理内存时,分配的页表项不连续,页与页之间可能浪费内存。文件删除:当文件被删除时,其占用的存储块会变为空闲,但这些空闲块可能是分散的。文件增长:如果文件增长超出原分配空间,系统会为其分配新的块,这些块可能不连续。多次分配和释放后,会留下许多小的空闲块,这些块可能无法满足更大的内存请求。再次请求 8MB 内存时,虽然总空闲内存足够,但因为被分成小块,无法分配。
2024-12-20 15:57:18
446
原创 Unity ECS和OOP优劣对比
在ECS框架中,组件存储在连续的内存块中,这是为了优化缓存命中率和访问性能。但如果有新增的组件,是否还能保证内存连续性,取决于具体的实现方式和内存管理策略。内存布局优化:ECS通过将相同类型的组件存储在连续的内存块中(AoS -> SoA 转换),提高了缓存命中率,减少了内存访问延迟。当预分配的内存不足以容纳新增的组件时,系统通常会分配一块更大的连续内存,将现有数据复制到新内存,并释放旧内存。对于拥有成千上万个实体的场景,ECS通过结构化的数据访问方式可以显著提升处理效率,适合大型游戏或仿真系统。
2024-12-20 15:37:22
1205
原创 IOS 二进制无文件无效,解决苹果PrivacyInfo拒审的解决方案
PrivacyInfo.xcprivacy file contains invalid tracking information at the following path: “Frameworks/AppMetricaCore.framework/AppMetricaCore.bundle/PrivacyInfo.xcprivacy”. NSPrivacyTracking must be true if NSPrivacyTrackingDomains isn’t empty. Keys and valu
2024-12-18 18:01:28
1671
原创 [Unity] AppLovin Max接入Native 广告 IOS篇
B.Prefix中加入#import 和Assets.xcassets,并设置unity-iphone和unityFramework关联。3.NativeSDKManager.CS根据以下附件脚本更新(准备对应的IOS原生得广告ID)Ps:IOS收到去广告(RemoveAd)回调需要各自项目根据自己项目内容实现。Assets->Plugins->IOS文件夹下。(接入之前备份之前打包得Xcode工程)NativeIOS构建流程。
2024-12-13 17:52:15
624
2
原创 [Unity] AppLovin Max接入Native 广告 Android篇
把下载下来的maxnativelibrary-release-文件放在Plugins/Android下添加下面的两个脚本展示最高价格的native加入adi adv native比价逻辑在adi的OnAdLoadedEvent里设置adi的价格在adi的OnAdHiddenEvent重置adi价格在adv的OnAdLoadedEvent里设置adv的价格在adv的OnAdHiddenEvent重置adv价格处理展示adi的方法同理adv也是最后选择合适的时机加载Native 现在代码里
2024-12-13 13:59:35
862
原创 Unity Banner广告后面自定义背景,高度适配
ButtomBanner(适配高度)在CloseBanner(显示高度)线的下面,调整CloseBanner来满足这个就行,这样当ButtomBanner为准确banner的高度,线刚好在banner之上。所以UGUI的Canvas使用Constant Pixel Size模式,Reference Pixels Per默认100。展示(关闭)Banner的时候调用Show,Banner加载成功回调里调用RefreshSizeDelta。已经测试十几台设备包括pad没问题。目的是实现这个,代码放下面。
2024-11-26 17:13:01
422
原创 Unnity IOS安卓启动黑屏加图(底图+Logo gif也行)
然后点击 右上角的+ 创建一个ImageView 拉到xib里面 右侧选择图 然后选择适配。在Xcode中创建Storyboard文件,2019及之之前版本应该是XIB文件,创建方法。在Unity-IPione先创建一个文件夹命名为View 啥都行 然后把图篇资源拉进来。一般需要两个图 一个是底图 一个是logo。在StreamingAssets放两张图。需要创建两个 一个是手机 是个是pad。然后在Unity中选择创建的这两个文件。ps:如果修改的话需要重新打包。左边箭头选择图 右边箭头适配。
2024-09-18 15:12:11
825
原创 Unity安卓IOS根据不同国家语言显示不同的APP名字
info.list中增加Boolean类型的Application has localized display name,值为YES。放在Plugins下,然后修改string.xm里的app名字即可;然后把多语言放在ATT弹窗的多语言里面。如果需要别的国家,增加文件夹即可。
2024-08-13 10:46:43
562
原创 Unity In App Purchasing内购校验
内购校验,把后台的key填进去,点击自动生成一些文件。在IAPManager.cs的。1,利用收据验证混淆器。
2024-07-03 09:50:21
688
1
原创 Unity3D获得服务器时间/网络时间/后端时间/ServerTime,适合单机游戏使用
一些游戏开发者在做单机游戏功能时(例如:每日奖励、签到等),可能会需要获得服务端标准时间,用于游戏功能的逻辑处理。通过上图可知,我们只需要正常请求大厂的最常用的URL,等待响应成功后,读取响应头中的“Date”属性就行了。a、可以使用别人的免费API,但是通常问题比较多,例如:服务器关闭了、API禁用了等(该方案有风险);b、更稳妥点的方案:请求大厂服务器(例如:百度、腾讯、Github等),获取其响应头时间;1、自己如果有服务器:自定义一个后端API,客户端按需请求就行了;
2024-06-03 18:03:55
699
1
原创 [Unity]实时阴影技术方案总结
一,Projector Shadow是常用的实时阴影实现方式,其基本原理是通过摄像机将需要显示阴影的物体,渲染到一张RenderTexture(RT)上,记录下物体的颜色值(可设置为自定义颜色),并将RT关联到Projector组件的材质上;然后通过Projector组件将需要接收阴影的物体以Projector组件的材质再渲染一遍来实现阴影的显示。具按照自己的理解,其实就是根据光照方向计算片元在接受阴影的平面上的投影位置,然后绘制即可,这种方式还是只适合在平面上绘制阴影。
2024-01-03 19:07:52
1183
原创 Unity 项目中查找仅具有单一颜色的纹理
你可能会问,为什么我需要这个?某些纹理可以是 1024x1024 或更大,并且仅包含单一颜色(Asset Store 上的许多艺术资源将此类纹理用于其材质的金属/发射/镜面/等通道)。为什么你想要一个 1k 纹理?您可以简单地将其最大尺寸设置为 32,在显着优化纹理尺寸的同时,它也会产生相同的效果。该插件可用于快速找到此类纹理。的文件夹,然后在其中添加此脚本即可。只需在“项目”窗口中创建一个名为。
2023-10-24 16:26:44
326
原创 [Unity]将所有 TGA、TIFF、PSD 和 BMP(可自定义)纹理转换为 PNG,以减小项目大小,而不会在 Unity 中造成任何质量损失
只需在“项目”窗口中创建一个名为“编辑器”的文件夹,然后在其中添加此脚本即可。然后,打开窗口-Convert Textures to PNG,配置参数并点击“Convert to PNG!只要禁用“Keep Original Files”或将项目的资源序列化模式设置为“强制文本”,就会保留对转换后的纹理的引用。就我而言,它已将某些 3D 资源的总文件大小从 1.08 GB 减少到 510 MB。
2023-10-24 16:20:12
1733
原创 Unity中从3D模型资产中批量提取材质
只需在“项目”窗口中创建一个名为“编辑器”的文件夹,然后在其中添加此脚本即可。然后,打开Window-Batch Extract Materials,配置参数并点击“ Extract!在Unity 2019.1+上,可以将默认材质重映射条件配置为自动检测模型资源中嵌入的重复材质并为它们提取单个材质,而不是将它们提取为重复材质实例。
2023-10-24 16:17:43
1500
原创 Unity 中使用波浪动画创建 UI 图像
只需将此组件添加到画布中的空对象即可。强烈建议您将此对象放入其自己的画布/嵌套画布中,因为它会弄脏每一帧的画布并导致重新生成整个网格。注意:不支持切片图像。
2023-10-24 16:15:54
527
原创 [Unity3D]图片格式自定义MaxSize
只需在“项目”窗口中创建一个名为“编辑器”的文件夹,然后在其中添加此脚本即可。然后,打开Window-Custom Max Size Setter,选择一个或多个纹理并调整其最大尺寸值。由于 NPOT 纹理大小不能很好地与压缩算法配合使用,因此该技术主要用于微调精灵图集中打包的精灵的最大大小。
2023-10-24 15:45:22
650
原创 Unity升级2021后发包 会出现格式转化问题
1.Non-fatal Exception: java.lang.Exception FormatException : Input string was not in a correct format.2.Non-fatal Exception: java.lang.ExceptionFormatException : String was not recognized as a valid DateTime
2023-10-24 15:36:01
179
【Unity防作弊插件最新版】Anti-Cheat Toolkit 2024.0.0 提供多种有效的反作弊破解功能
2025-03-26
Unity 优化封装常用API和编辑器扩展工具包WXTools
2025-02-28
Unity Wireframe Shader Effect插件-Wireframe Shader线框渲染效果
2025-02-25
Unity Wireframe Shader线框渲染效果WXWireframeRenderer
2025-02-25
unity行为树插件最新版本1.7.10
2025-02-12
Unity AppLovin Max接入Native 广告 IOS篇 资源
2024-12-13
Unity AppLovin Max接入Native 广告 安卓篇 资源
2024-12-13
DynamicShadowProjector
2024-01-03
Unity UGUI Plus
2023-11-13
BakeMesh粒子层级问题解决
2022-05-30
ARPG项目中的事件通知模块,传多少个参数都方便,万能事件通知-NK事件通知传参.zip
2021-10-08
MonKey - Productivity Commands.unitypackage
2021-09-29
Emerald AI 20 v2.2.1.txt
2019-05-23
(禁止商业用途)RPG游戏C#(登陆注册,背包,任务,商城,关卡,信息,伤害,技能)
2018-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人