读取整个资源文件会对运行时内存造成不必要的浪费,并且在需要加载多个spine文件时会极大增加 GC 操作的压力。查看 SkeletonDataAsset 代码,不难发现方法 SkeletonBinary.ReadSkeletonData 的调用传参是 MemoryStream,我们可以通过定制修改Unity-Spine的Editor Inspector代码,传入文件路径或者文件名,并编写完善的文件加载逻辑,同...
3d游戏中的纹理使用Mipmap Mipmap 是图像逐渐减小版本的列表,用于优化实时 3D 引擎的性能。远离摄像机的对象使用较小的纹理版本。使用 Mipmap 会多占用 33% 的内存,但不使用它们会导致巨大的性能损失。3d游戏中的纹理应当始终使用 Mipmap;唯一的例外是变小的纹理(例如,GUI 纹理、天空盒、游标和剪影)。Mipmap 对...
Spine骨骼动画在游戏制作中广泛应用。在《星之交响》项目中,面对Unity引擎中Spine动画加载过程中的性能问题,我们进行了深度优化,以提升游戏体验。优化策略包括预处理、增加缓存池、按需加载动画数据及改进文件读取方式。在初始优化阶段,我们使用Profiler工具定位问题,发现Spine资源加载耗时过长,导致游戏卡顿。
每个角色尽量使用一个Skinned Mesh Renderer,因为当角色仅有一个Skinned Mesh Renderer 时,Unity会使用可见性裁剪和包围体更新的方法来优化角色的运动,而这种优化只有在角色仅含有一个Skinned Mesh Renderer 时才会启动 人型动画根据需求可以进行节点对象优化:Rig中--Optimize Game Objects,选择需要保留的节点---Extra Tr...
Unity优化基础 理解Unity性能指标 在Unity游戏开发中,性能优化是确保游戏流畅运行的关键。Unity提供了多种...
如果出现从图集读取的图片中含有旁边图片的一部分,那就选择该图集的Tight Packing取消勾选。如果读取的图片不是正的,那就选择该图集的Allow Rotation取消勾选。如果项目中需要使用到Spine,那么Spine的图集不要打到SpriteAltas,因为内存会变成两份,因为Spine是直接读取图集的png,不会自动关联到SpriteAltas里的图片 ...
Unity性能优化 1.确定各平台纹理格式(内存、流畅性、包体大小) 统一ASTC,OPENGL ES 3.1之后统统支持(2014年后机型) 2.制定不同资源 AssetBundle 打包策略(流畅性、包体大小) 启动、热更界面资源与游戏内资源分开处理 AB包控制在1~10MB左右,小资源(icon、配置等)合并为1个AB,大资源(立绘、spine、图集)单独1个AB...
Spine数量太多导致Update性能损耗很大 AssetBundle Q:现在游戏资源大概870MB(Android平台导出的所有AssetBundle),在Windows(i5-7500 CPU@3.40GHz,GTX1050,16GB内存,SSD硬盘)下导出全量的Android资源耗时大概是2小时,i9机器上1小时,6年前的i3差不多4小时。
刚进游戏时获取的图中出现的“重复”资源可能并不是冗余,因为 Atlas的一个 Group 中可能包含多张一样大小的Page(即纹理),而这几个Page在内存中的名字是一样的。 但是,如果同一UI界面多次开启后,内存中出现了更多同样的资源,则说明UI的管理方式存在一定问题。对于频繁使用的UI,我们建议在加载之后通过缓冲池对其进...
首先,需要注意的是Sprite动画的性能问题。与spine动画相比,Sprite动画在进行大量动画切换时可能会导致性能下降。解决这个问题的方法是尽量减少动画帧的数量,优化动画序列。同时,可以使用Animation Caching技术来提高性能,避免在动画循环中重复加载相同的帧。其次,由于Sprite动画中的每个Sprite都是独立的,因此...