引言:

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

转载于:https://www.cnblogs.com/hisiqi/p/3202684.html

(转)Unity3d使用心得(2):Unity3d 动态下载动画资源——AnimationClip 的使用相关推荐

  1. Unity3D的坑系列:动态加载dll

    Unity3D的坑系列:动态加载dll 我现在参与的项目是做MMO手游,目标平台是Android和iOS,iOS平台不能动态加载dll(什么原因找乔布斯去),可以直接忽略,而在Android平台是可以 ...

  2. Unity3D引擎各大插件免费下载地址

    Unity3D引擎作为当前最主流的3D游戏引擎之一,拥有大量第三方插件和工具.以下为各大Unity3D引擎各大插件免费下载地址,还有一些热门插件例如:Playmaker . UnIDE .Tile B ...

  3. 2019年4月份整理的Unity3D 20个实用插件-免费下载

    Unity3D 简易细节层次插件 Simple LOD http://www.idoubi.net/unity3d/tool/3764.html Unity3D 物体表面贴花喷漆插件 Easy Dec ...

  4. 【风宇冲】Unity3D教程宝典之插件篇:Unity3D插件详细评测及教学下载

    [风宇冲]Unity3D教程宝典之插件篇:Unity3D插件详细评测及教学下载 (2012-12-09 07:27:51) 转载▼ 标签: unity3d unity unity3d教程 unity3 ...

  5. Unity3D 入门:安装 Unity3D 并配置与 Visual Studio 的协作开发环境

    实际上本文不看也罢,因为整个过程除了网速之外基本没啥坑.不过装完可能有一些配置,所以如果不知道的话可以参考本文. @TOC 安装 我们共需要安装两款应用: Visual Studio 2019 及 U ...

  6. Unity3D 游戏引擎之Unity3D回馈IOS高级界面消息 (十)

    Unity3D 游戏引擎之Unity3D回馈IOS高级界面消息 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong. ...

  7. Unity3D 入门 游戏开发 Unity3D portal game development

    Unity3D 入门 游戏开发 Unity3D portal game development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com ...

  8. Unity3D-游戏ARVR开发进阶课程 - 动画系统-宋晓波-专题视频课程

    Unity3D-游戏ARVR开发进阶课程 - 动画系统-10610人已学习 课程介绍         本套视频培训课程中会深入学习Unity中的Mecanim动画系统.包括动画剪辑.动画控制器.动画状 ...

  9. 【unity3d】如何学习unity3d

    Unity3D是一个跨平台的游戏引擎,它提供了3d游戏的大部分基础功能实现,比如物理碰撞.3d模型显示.光照等功能,简化了使用者开发游戏的过程,更能够节省非常多的成本,unity3d与别的游戏引擎最大 ...

最新文章

  1. mysql数据库建仓范式_存mysql个数
  2. IOS8中SWIFT 弹出框的显示
  3. 小心!你的脸正在成为色情片主角……
  4. 杨立昆辞Facebook人工智能实验室主任,任首席科学家
  5. 怎么让手机变成震动器_详解iPhone 手机标配的两种技术:线性马达和3Dtouch,有多好用?...
  6. XX管理包括哪些功能
  7. swift5表情键盘项目封装
  8. IOS开发基础之NSURLSession的使用
  9. 洛谷T172100 商店-贪心
  10. 如何使用txt文件实现JMeter参数化
  11. linux 中常见的压缩和解压缩的命令
  12. Java学生宿舍管理系统主要内容及特点
  13. 跨过Nginx上基于uWSGI部署Django项目的坑
  14. 屏幕颜色拾取器 (VC++)
  15. python showinfo函数_Python 函数
  16. rabbitmq批量确认结合qos导致的消费者假死和消息丢失问题
  17. python画狗的代码_简单的Python代码能狗实现哪些丧心病狂的功能
  18. PS之人物磨皮与特效(适用于商业海报)
  19. PID控制的理解与参数整定
  20. JAVA动态代理Porxy

热门文章

  1. 循环序列模型 —— 1.3循环神经网络
  2. 移动web的适配问题
  3. Kaggle新手入门
  4. Python矩阵计算
  5. Python 二维创建与插入值的二种方法
  6. keyvaluepair_KeyValuePair用法(转)
  7. Spring框架 简述
  8. JDBC简单连接MySQL
  9. 东芝半导体-三极管和功率管-元器件后缀说明解释-L3F
  10. linux 7修改主机名重启后不生效_Linux 中改变主机名的 4 种方法 | Linux 中国