Unity3d使用心得(2):Unity3d 动态下载动画资源——AnimationClip 的使用
来源:互联网 发布:自动生成条码软件 编辑:程序博客网 时间:2024/06/06 00:48
http://www.cnblogs.com/dongliang/archive/2012/09/27/2706059.html
转载请保留来源:http://www.cnblogs.com/dongliang/
引言:
在使用 Unity3d 开发微端、或者网页游戏的时候经常需要将资源打包成 AssetBundle ,然后通过 www 的方式动态的下载资源。今天要分享的是我再动态下载 Animation 骨骼动画的时候走的一些弯路和自己最后的解决方案。我们的项目中的动画资源有上百套之多,每一套动画大概在300KB 到 900KB 之前,所以有一个很重要的需求就是动态的下载需要的动画。
错误的方法:
我看到需求后想到的第一种方法是将 FBX 倒入的 Prefab 实例化,将其中的 Animation 通过 ScriptObject 保存成Asset文件,然后导出成 AssetBundle 文件。在游戏运行的时候将下载回来的 Animation 组件赋值给对应的 GameObject 的 Animation 变量中。悲剧的是我在这个时候才发现 Animation 存取器是只读的。
正确的做法:
导出 Animation 中的 所有AnimationClip 对象作为数组添加到 ScriptObject 中,保存成Asset文件,然后导出成 AssetBundle 文件。在游戏运行时,将下载回来的Clip对象添加到 Animation组件当中完成动画的动态加载。
AnimationClip 中包含了动画的数据,可以灵活的从Animation中添加删除。
另一个看似可行的方法:
将 Fbx 倒入的 Prefab 实例化的游戏对象中,占用空间较大的数据 —— SkinnedMeshRenderer 组件中 Mesh(网格数据)、Shader 中的 Texture 分别导出成AssetBundle,将删除了这两个数据的剩余的 GameObject 连同动画一起打成一个Prefab,在运行的时候动态的拼装。如果项目中的动态下载角色资源的方式是这种方式的话,可以在一定程度上的绕开前文中遇到的问题。但是前一种解决方案是比较准确解决问题的一种方案。
源代码:
文中提到的 导出AssetBundle 、ScriptObject等知识点,都是Unity3d比较基础的用法,在这里就不列举具体的代码了。有需要帮助的朋友可以给我发私信。
- Unity3d使用心得(2):Unity3d 动态下载动画资源——AnimationClip 的使用
- Unity3d使用心得(2):Unity3d 动态下载动画资源——AnimationClip 的使用
- (转)Unity3d使用心得(2):Unity3d 动态下载动画资源——AnimationClip 的使用 - 斯玛特琦
- Unity3d资源包的使用心得
- Unity3D -- 自动生成动画(AnimationClip)
- Unity3D使用心得(1):ModelImporter的使用、在代码中添加动画片段。
- Unity3d使用心得(1):ModelImporter的使用、在代码中添加动画片段。
- Unity3D使用心得(1):ModelImporter的使用、在代码中添加动画片段。
- unity3d——3.5升级4.3打包资源的使用
- Unity3d卸载未使用的资源
- unity3d 动态更新资源(-)
- unity3d 自定义资源包使用
- Unity3D项目程序加密2——在Unity3D里使用自己的dll
- Unity3D——SendMessage方法的使用
- unity3d学习笔记——老版动画系统的使用
- Unity3d 资源断点下载
- Unity3D-动态加载资源
- unity3d 在编辑器中修改AnimationClip的属性值
- c++primer(第五版) 第十一章 关联容器习题答案
- ACM520最大素因子
- UIWebView
- 自定义view绘制圆形里面带个勾的动画
- some answers from Filestorm
- Unity3d使用心得(2):Unity3d 动态下载动画资源——AnimationClip 的使用
- 蓝桥杯之平时小练三羊献瑞
- java中数组做形参
- Linux命令大全
- centos下的svn服务器搭建过程以及分析
- 橱窗布置c++动态规划
- 在shell中发送邮件的相关问题
- UITextfield属性(初级篇)
- ListView的性能优化之convertView和viewHolder