博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
技术分享连载(二十)
阅读量:7106 次
发布时间:2019-06-28

本文共 1764 字,大约阅读时间需要 5 分钟。

资源管理

Q1:我想要在Editor下批量地对Animator Controller文件中每一个的State里的Animation Clip进行替换,但好像没有看到 Unity引擎有提供类似的API,只提供了能在Runtime时进行替换的方法,类似下图:

UWA Tech Doc
我现在想要达到的目地是在Editor下写一个批量替换Animation Clip的插件,请问下Unity引擎是否有提供这样的接口呢?

在Unity 5.x 中已有一套完整且稳定的 API 可以访问、修改和创建 Animator 中的任何元素。其命名空间是在 UnityEditor.Animations 下,以下Blog 中有一个简单的例子是通过脚本创建一个 AnimatorController 以及其中的各种属性和参数。http://blogs.unity3d.com/2014/06/26/shiny-new-animation-features-in-unity-5-0/

另外,如果需要修改Animation Clip,可以直接修改一个 AnimationState 的 Motion 属性。 Animation Clip可以继承自 Motion。


资源管理

Q2:我用UGUI做的一个界面中有一个背景图片,游戏中没有做任何处理,关闭销毁这个界面后这个图片还在内存中,但是我已经调用过了Resources.UnloadUnusedAssets,如下图所示。我的预设没有打成AssetBundle,是放在Resource路径加载的。请问是什么原因导致的呢?

UWA Tech Doc
UWA Tech Doc

在使用 Resources.Load 加载 UI 界面的情况下,即使“关闭销毁这个界面”后,Resources.UnloadUnusedAssets 确实还是无法卸载对应的图集的。因为此时该图集依然被 Resources.Load 加载出来的 Prefab 引用。

对于这种情况,我们的建议是手动调用 Resources.UnloadAssets 来手动释放图集(可以通过 Sprite.texture 来找到对应的图集),在重新实例化该 UI 界面时,图集也会自动进行 Reload 的。


资源管理

Q3:同样的包同一个图集,ETC2格式,在红米Note1上会比酷派的内存会大四倍,请问这是什么原因造成的?如果不支持OpenGL 3.0,会造成这么大的影响吗?

ETC2 的格式理论上只在OpenGL ES 3.0 的设备上被支持,而在不被支持的设备上则会内部自动转成 RGBA32/ARGB32的格式,这对于 RGBA Compressed ETC2 8bits 的纹理就是放大了 4 倍。因此,如果希望在 OpenGL ES 2.0 的设备上对透明材质进行压缩,那么可以尝试使用分离 Alpha 通道的方式,用两个 ETC1 来进行压缩。


图形渲染

Q4:MeshBaker 烘焙的Mesh可以保存到Prefab中,但是不能像FBX一样,设置Model导入设置中的Generate Lightmap UVs 等信息,请问有没有大招可以处理此情况?

首先从理论上说,一个 Mesh 只能有一个 LightmapIndex 和 LightmapOffset 属性,这就决定了 Mesh 的合并必须在 Lightmap 的烘焙之前。

而在做Mesh合并时,需要注意到UV2对于一个Mesh而言,其所有三角面的UV区域都必须是互不重叠的,所以不能简单直接地合并。

考虑到合并前每一个Mesh的UV2区域都应该是在[0,1]x[0,1]的区间中,在合并时可以给每一个UV2区域做一个缩小和平移,从而可以把每个区间在互不重叠的情况下,放到同一个[0,1]x[0,1]的区间中。

在UV2也正确拼合后,重新进行Lightmap的烘焙即可得到正确的效果。


资源管理

Q5:如果我的Animator是直接引用了FBX里的动画文件,而不是复制了FBX的动画文件出来再引用,那么打包的时候会把FBX都打包吗?

这种情况下并不会把 FBX 打入 AssetBundle 中。将动画文件Copy出来通常是为了直接对动画文件打包,作为依赖包。

原文出处:侑虎科技
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

你可能感兴趣的文章
postgresql创建只读账号
查看>>
ubuntu apache2 端口的改变
查看>>
我的友情链接
查看>>
mysql master slave
查看>>
NS_ERROR_XPC_NOT_ENOUGH_ARGS: Not enough arguments [nsIDOMWindow.alert]
查看>>
IT技术随笔博客园链接
查看>>
squid
查看>>
Aspose.Cells 8月新版17.8发布 | 附下载
查看>>
php连接mysql速度慢的问题解决
查看>>
2003服务器安全设
查看>>
对centos6下时间同步(ntp)操作的讨论
查看>>
概率论与数理统计(一)古典概型
查看>>
kafka学习:入门
查看>>
Object.assign()的用法
查看>>
什么是次世代游戏
查看>>
矢量图形引擎库VectorDraw Developer Framework 更新至v7.7011.0.4
查看>>
SSH 内网端口转发实战
查看>>
Git 系列(二):初步了解 Git
查看>>
2M宽带多快
查看>>
JS常用正则表达式备忘录
查看>>