unity资源优化插件

article/2025/10/21 17:36:55

转载 来自:http://blog.uwa4d.com/archives/Resource_Plugin.html


工欲善其事必先利其器。在Unity官网的Asset Store上有不少给力的资源插件,能帮助我们减少人力资源消耗的同时,更快更好地驾驭引擎。今天我们就从善用资源的角度,推荐两款Unity热门插件,并介绍其使用技巧。


Mesh Baker

我们在项目开发的时候经常会大量使用大规模的Mesh,导致Draw Call过高。而Mesh Baker扮演了网格烘焙器的角色,其工作原理是将网格和材质合并,从而降低渲染的Draw Call。

下面,我们就来谈谈使用方法:

Texture Packing

我们常常会遇到角色网格相似,但是纹理繁杂细碎的情况。这时我们需要把纹理合并在同一张图上。纹理拼合的操作面板如下图所示:选择不同的网格来拼合,Texture Baker自动分析其Shader,Size等属性,最后点击Bake Material Into Combined Material,即可完成拼合。

UWA Tech Doc

Mesh Batching

在纹理拼合后已经形成为一张图片了,这时候我们需要进行Mesh拼合,即使用Mesh Baker来烘焙网格。在此,我们新建一个新的GameObject,点击Bake就把3个Mesh烘焙在一个Object上了。

UWA Tech Doc

同时,在进行了这两步之后,我们会发现Draw Call上的变化。

合并前

UWA Tech Doc

合并后

UWA Tech Doc

不难发现,合并前12个Draw Call,合并后只有2个,从而在一定程度上降低渲染压力。

对Skinned Mesh进行拼合

Unity引擎无法原生支持蒙皮网格的Draw Call Batching,而Mesh Baker能将多个Skinned mesh合并。

UWA Tech Doc

UWA Tech Doc

经过合并后,人物的材质已经相同,所以我们能在上图中看到这些角色只产生了一个Draw Call。同理,即使再加入更多的角色也能合并成非常少的Draw Call,从而减少渲染耗时。

除此之外, Mesh Baker还支持将Mesh Renderer与Skinned Mesh Renderer一起合并。比如开发中常用到的道具如帽子、剑等,使得角色在换装时也只产生一个Draw Call,非常实用。

在使用skinnedmesh时有几个注意点:

合并后将原始模型的Bone保持Active;
Disable原始模型的Skinned Mesh Renderer;
确保原始的Animation始终在运行;
如果需要Mesh Rendering与Skinned Mesh 一起合并,则需要保证在其在同一张Texture Atlas和Mesh容器中。

SimpleLOD

除了Mesh Baker,另一个插件SimpleLOD也比较适合大规模场景的制作开发。在处理多人在线的项目(如MMO游戏)时,按照我们以往的优化方法是尽可能降低Draw Call和减少渲染消耗,在远处使用低级LOD,在Run-time时根据相机距离切换合适的LOD,使得在手机性能有限的情况下尽量渲染更多的角色,达到更好的效果。

而SimpleLOD恰好可以满足这一点,除了同样拥有Mesh Baker所具有的Mesh合并、Atlas烘焙等功能,它还能提供Mesh的简化(Mesh Baker无法提供),并对动态蒙皮网格进行了很好的支持。该插件可在Run-time和Editor中都可以使用,同时开放了源码,大家可以根据项目的实际情况而作修改。

UWA Tech Doc

我们拿以下原始模型来举例:

UWA Tech Doc

合并模型

打开插件后有如下一些选项:点击Merge child meshes

UWA Tech Doc

我们知道Unity支持的网格顶点数不能超过65536,但是当我们把很多物体合成一个Mesh时很可能会超过这个限制。而这个插件会针对这种情况进行自动处理,可以看到下图中的两辆车Merge后成Merged part1和Merged part2 。

UWA Tech Doc

烘焙Atlas

下图是Texture packing,根据模型的Material自动把不同类型的Texture分类显示出来,在合并的时候,会自动把同类型的Texture合并。

UWA Tech Doc

合并之后的效果对比:Draw Call数量由原来的136降至24个。

UWA Tech Doc

模型简化

选择了模型之后,点击Simplify mesh,它会尽可能在保持原样的基础上简化网格。如下图,汽车模型的网格面片数从六万多顶点数减少到了两万七。

UWA Tech Doc

UWA Tech Doc

同时,它也能自动生成不同级别的LOD。这里有6层LOD(从大到小),点击Bake LOD后它会自动计算,不需要大家手动操作。我们可以通过更改脚本达到希望的效果。

UWA Tech Doc

UWA Tech Doc

如下就是使用了SimpleLOD后的效果。该插件最大的特色即是对Skinned mesh动画角色网格提供了很好的支持。

UWA Tech Doc

UWA Tech Doc

以上是我们今天推荐的插件,但愿能在资源优化中祝你一臂之力。今后我们将会结合以往的行业服务经验,为您推荐更多高效的开发利器,尽情关注!


http://chatgpt.dhexx.cn/article/9pV3O7BX.shtml

相关文章

Unity常见资源类型

资源工作流程 在Unity项目中有一个固定的文件夹—Assets文件夹。 Assets是放项目需要到的文件资源的,比如:图片文件、3D模型文件(*.FBX格式)、音频等。 资源文件是可能来自 Unity 外部创建的文件,例如 3D 模型、音频…

反编译apk获取unity资源流程分享

什么时候需要这样做? 遇到真机问题,如资源丢失检查,可能需要直接拆开对应的包来确认资源是否存在,打包是否没打进去。例如检查某个tdr表格是否没有打进包里面,或者检查包里某个资源版本是不是不对 看到其他做的很好的游戏&…

【Unity 资源分享】☀️ | Unity 华丽炫酷特效资源分享!万年魂环拿到手软,让你直达封号斗罗~

📢博客主页:https://blog.csdn.net/zhangay1998📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉📢未来很长&a…

unity资源释放(AssetBundle和Asset)

本节主要叙述下,资源的释放问题。 1、我们准备了下两个资源,并且要做打包处理。 代码的代码,很简陋,只是为了说明问题。代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine…

【Unity 资源分享】 | Unity 精品写实动物模型+全套动画 资源分享

📢前言 💦好久没有写分享Unity资源的文章了,最近也是收藏了挺多Unity相关的资源💦所以就来写一篇文章分享几个资源包您喜欢💦所以呢,这次小Y又从自己的乾坤袋里掏出了一个精品动物模型全套动画分享给大家使…

Unity资源热更-Addressables总结(一)

Addressables是Unity官方推出的用于资源热更的系统,可在Package Manager里面下载,我这里分两部分讲解,第一部分是操作入门,第二部分是代码编程以及注意事项 一、入门 选择合适的Addressables版本下载安装完成后,选择Gr…

Unity 资源商店无法登陆,提示链接失效 的解决办法

出现资源商店无法登陆问题,网络换一下,用自己的手机热点连网,就可以了。

Unity 加载资源

直接把资源放在unity的目录里是不行的 打包的时候 不会打进去 要想打包到apk里 只有两种选择 1 放到 StreamingAssets 里 – Application.streamingAssetsPath 2 场景里有引用 他会自动打包进apk里 资源放到预制体里 并且预制体没在场景里 也不打包 先安装 https://github.co…

Unity 资源加载卸载过程

什么时候才是UnusedAssets? 看一个例子: Object obj Resources.Load("MyPrefab"); GameObject instance Instantiate(obj) as GameObject; ......... Destroy(instance); 创建随后销毁了一个Prefab实例,这时候 MyPrefab已经没有被实际的物体…

Unity资源分享网站——记录

UWA开源库 UWA问答 | 开源库 | 帮助开发者发现更好的解决方案| 侑虎科技 FREEDOMCLUB Get Unity Assets For Free | Welcome To Unity Assets FREEDOM CLUB Itch.io Top game assets - itch.io reddit https://www.reddit.com/r/Unity3D/ NOTE 「unity」の人気の記事一覧&a…

Unity资源导入自动化设置

Unity资源导入自动化设置 简介具体实现 新的问题解决方法 简介 大家都知道,在Unity中导入的资源不同类型有不同的设置, 例如:模型文件导入之后是这样的 当导入数量少的时候我们可以手动去改,但是当数量很多,或者文件结…

Unity资源下载材质贴图消失

一、问题 在网上下载的Unity资源模型导入Unity后变成白色,材质丢失。 二、解决办法 1.在Unity Assets中选择下载的模型。 2.在Inspector面板点击模型的materials,在Location那一栏选择Use External Materials(Legacy)&#xff0…

Unity资源导入

1、在资源中添加自定义包 2.选择导入 3.导入后出现以下错误 4.双击错误打开进行修改

unity资源管理

unity资源一般,分为两个目录:Resources和StreamingAssets,下面我们就来了解下,这两个目录 如何使用,有什么区别。 Resources 放在Resources里边的资源,会全部打进包体,且会压缩。这里边的资源&…

Unity中的资源管理-资源类型和基本使用

本文分享Unity中的资源管理-资源类型和基本使用 真不容易, 经过几篇文章的铺垫, 我们终于进入正题了. 今天继续给大家聊聊资源管理中的基础知识: 资源的类型和基本的使用. Unity中的资源类型 这一部分在官方文档里介绍的很清楚, 有兴趣的同学可以自行跳转: 如果不愿意看官网…

【Unity3D】资源文件 ③ ( Unity 资源包简介 | 导出 Unity 资源包 | 导出资源包的包含依赖选项 | 导入 Unity 资源包 | Unity 资源商店 )

文章目录 一、Unity 资源包简介二、导出 Unity 资源包1、正常导出 Unity 资源包2、导出资源包的包含依赖选项 三、导入 Unity 资源包四、Unity 资源商店 一、Unity 资源包简介 将 Project 文件窗口 中的 Assets 资源进行打包 , 就会得到一个 资源包 Unity Package , 后缀为 &qu…

图嵌入 DeepWalk

文章目录 图表示学习-图嵌入 DeepWalk1 图嵌入2 随机游走-Random walks3 DeepWalk3.1 Hierarchical Softmax3.1.1 哈夫曼树3.1.2 Logistic Regression3.1.3 Softmax 回归3.1.4 Hierarchical Softmax 3.2 模型训练 图表示学习-图嵌入 DeepWalk 1 图嵌入 目标:将节点…

对DeepWalk的理解

DeepWalk的理解 如今我们都处于大数据时代,同时我们也身处于各个网络当中,列如通信网络,交通网络等等。我们如何将网络中的信息用我们计算机能懂的方式展现出来,这就是网络表示。而deepwalk主要是用来表示网络的一种方式&#xf…

KDD 2014 | DeepWalk: 社会表征的在线学习

目录 前言Abstract1.Introduction2.Problem Definition3.Learning Social Representations3.1 Random Walks3.2 Connection: Power laws3.3 Language Modeling 4.Method4.1 Overview4.2 Algorithm:DeepWalk4.2.1 Skip-Gram4.2.2 Hierarchical Softmax4.2.3 Optimiza…

DeepWalk

原文 《DeepWalk: Online Learning of Social Representations》 亮点 In this paper we introduce deep learning (unsupervised feature learning) techniques, which have proven successful in natural language processing, into network analysis for the first time.…