• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

游戏开发

常州微信游戏开发-U3d 动态下载动画资源Animatio

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2019/0129/365.html

常州微信游戏开发-U3d 动态下载动画资源—AnimationClip 

 

引言:

在使用 Unity3d 开发微端、或者网页游戏的时候经常需要将资源打包成 AssetBundle ,然后通过 www 的方式动态的下载资源。今天我们常州微信公众平台要分享的是我再动态下载 Animation 骨骼动画的时候走的一些弯路和自己最后的解决方案。我们的项目中的动画资源有上百套之多,每一套动画大概在320K 到 920K 之间,所以有一个很重要的需求就是动态的下载需要的动画。

 

错误的方法:

我看到需求后想到的第一种方法是将 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,在运行的时候动态的拼装。如果项目中的动态下载角色资源的方式是这种方式的话,可以在一定程度上的绕开前文中遇到的问题。但是游戏开发运营前一种解决方案是比较准确解决问题的一种方案。

 


上篇:上一篇:常州手游开发-ModelImporter在代码中添加动画片段
下篇:下一篇:常州手游开发培训-NGUI Drall原理分析