(转)Unity3d使用心得(1):ModelImporter的使用、在代码中添加动画片段。
在使用 Unity3d 倒入Fbx模型的时候,动画的动画片段需要自己手动添加模型多了以后会是一个不小的工作量。
Unity3d支持 编辑器脚本来控制资源导入的过程。添加一个 AssetPostprocessor 监听其中的 OnPreprocessModel 方法,在其中使用 ModelImporter 的 clipAnimations 属性来为导入的动画添加动画片段。
我的项目中美术给的模型中,按类型划分,每一个类型都有一套动画。我是采用的方法是 分别将不同类型的模型放置到不同的文件夹,通过路径来判断应该添加什么样的动画片段。这里如果你的项目中实现了Unity3d中读取策划填写的表格的话其实也是可以的。这里就不展开了。
ModelImporter 的 clipAnimations 属性 接收的是一个定长的数组。这里我封装了一个管理器类用于提供一个更简洁、代码更少的方法创建该数组。
完整代码如下:
1 using UnityEngine;
2using System.Collections;
3 using UnityEditor;
4 using System.Collections.Generic;
5
6 public class AnimModelSet : AssetPostprocessor
7 {
8 void OnPreprocessModel()
9 {
10
11 if (assetPath.Contains("FirstPlayers"))
12 {
13 ModelImporter textureImporter = assetImporter as ModelImporter;
14 editorImporterUtil.clipArrayListCreater creater = new editorImporterUtil.clipArrayListCreater();
15 creater.addClip("idle", 0, 50, true, WrapMode.Loop);
16 textureImporter.clipAnimations = creater.getArray();
17 }
18 }
19 }
20
21 namespace editorImporterUtil
22 {
23 public class clipArrayListCreater
24 {
25 private List<ModelImporterClipAnimation> clipList = new List<ModelImporterClipAnimation>();
26 public void addClip(string name, int firstFrame, int lastFrame, bool loop, WrapMode wrapMode)
27 {
28 ModelImporterClipAnimation tempClip = new ModelImporterClipAnimation();
29 tempClip.name = name;
30 tempClip.firstFrame = firstFrame;
31 tempClip.lastFrame = lastFrame;
32 tempClip.loop = loop;
33 tempClip.wrapMode = wrapMode;
34 clipList.Add(tempClip);
35 }
36
37 public ModelImporterClipAnimation[] getArray()
38 {
39 return clipList.ToArray();
40 }
41 }
42
43 }
(转)Unity3d使用心得(1):ModelImporter的使用、在代码中添加动画片段。的更多相关文章
- (转)Unity3d使用心得(2):Unity3d 动态下载动画资源——AnimationClip 的使用 - 斯玛特琦
引言: 在使用 Unity3d 开发微端.或者网页游戏的时候常常须要将资源打包成 AssetBundle ,然后通过 www 的方式动态的下载资源.今天要分享的是我再动态下载 Animation 骨骼 ...
- Unity3D 中 Generic 动画导入设置和 Root Motion 之间的关系
2条评论 Unity3D 的 Mecanim 动画系统可以直接复用 3DS MAX 中制作的动画文件中的位移,这个就是通过 applyRootMotion 来达成的,我们只需要在使用 Animator ...
- [Unity3D][Vuforia][IOS]vuforia在unity3d中添加自己的动态模型,识别自己的图片,添加GUI,播放视频
使用环境 unity3D 5 pro vuforia 4 ios 8.1(6.1) xcode 6.1(6.2) 1.新建unity3d工程,添加vuforia 4.0的工程包 Hierarchy中 ...
- Unity3D研究院之打开Activity与调用JAVA代码传递参数
原地址:http://www.xuanyusong.com/archives/667 Unity for Android 比较特殊,Unity for IOS 打包是将XCODE工程直接交给开发 ...
- 【转】Unity3d:读取FBX中的动画
从模型中获得切割好的动画clip,并且对其中设置好的动画事件进行修改方法: 1.动画模型后缀为.FBX.在Unity3d中,能够显示FBX中的动画.要加载模型中的AnimationClip,只要Ass ...
- (转)在Unity3D中控制动画播放
用Unity3D也算是好久了,但是每次做项目总还是能学到新的东西.这次做一个TPS的项目就遇到了这样一个问题,如何同时在上下半身播放不同的动画?解决方法其实是很简单,但由于对于动画资源的了解不足导致问 ...
- unity3d用鼠标拖动物体的一段代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 这是一段拖动物体的代码,比较简洁明了,对了解uni ...
- 【跟我一起学Unity3D】代码中分割图片而且载入帧序列动画
在Cocos2dx中.对大图的处理已经封装好了一套自己的API,可是在Unity3D中貌似没有类似的API(好吧,实际上是有的,并且功能更强大),或者说我没找到. 只是这也在情理之中,毕竟Unity3 ...
- python爬虫学习心得:中国大学排名(附代码)
今天下午花时间学习了python爬虫的中国大学排名实例,颇有心得,于是在博客园与各位分享 首先直接搬代码: import requests from bs4 import BeautifulSoup ...
随机推荐
- 洛谷P1071潜伏者(提高组)
题目描述 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于S国的R 国间谍小C终于摸清了 S 国军用密码的编码规则: 1. S国军方内部欲发送的原信息经过加密后在网 ...
- 【PTA】Tree Traversals Again
题目如下: An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For e ...
- django orm 的查询条件
Django的ORM查询操作: 查询数据库操作是一个非常重要的技术.在Django中,查询一般就是使用filter.exclude.get三个方法来实现,在调用这些方法的时候传递不同的查询条件来实现复 ...
- JDK从1.8.x升级到9.0.1后Tomcat 8.0.x不能启动
目录 描述 具体环境情况 处理办法 描述 JDK在今年9月发布后,我们项目也打算测试升级使用JDK 9.在我将JDK升级成 JDK 9.0.1后,启动tomcat失败(黑框一闪就没了).具体失败信息如 ...
- 【bzoj2401】陶陶的难题I “高精度”+欧拉函数+线性筛
题目描述 求 输入 第一行包含一个正整数T,表示有T组测试数据.接下来T<=10^5行,每行给出一个正整数N,N<=10^6. 输出 包含T行,依次给出对应的答案. 样例输入 7 1 10 ...
- hdu 3499 Flight (最短路径)
Flight Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Su ...
- Codeforces 934.D A Determined Cleanup
D. A Determined Cleanup time limit per test 1 second memory limit per test 256 megabytes input stand ...
- Build RPM package from source code
# yum install rpm-build# wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz# vim rsync.specNam ...
- java 符号引用与直接引用
简单来说: 符号引用就是字符串,这个字符串包含足够的信息,以供实际使用时可以找到相应的位置.你比如说某个方法的符号引用,如:“java/io/PrintStream.println:(Ljava/la ...
- 【Apache Nutch系列】Nutch2.0配置安装异常集锦
1.java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration Exception in thread &qu ...