ModelImporter的使用、在代码中添加动画片段
来源:互联网 发布:青岛php招聘 编辑:程序博客网 时间:2024/06/05 05:40
Unity3d支持 编辑器脚本来控制资源导入的过程。添加一个 AssetPostprocessor 监听其中的 OnPreprocessModel 方法,在其中使用 ModelImporter 的 clipAnimations 属性来为导入的动画添加动画片段。
我的项目中美术给的模型中,按类型划分,每一个类型都有一套动画。我是采用的方法是 分别将不同类型的模型放置到不同的文件夹,通过路径来判断应该添加什么样的动画片段。这里如果你的项目中实现了Unity3d中读取策划填写的表格的话其实也是可以的。这里就不展开了。
ModelImporter 的 clipAnimations 属性 接收的是一个定长的数组。这里我封装了一个管理器类用于提供一个更简洁、代码更少的方法创建该数组。
完整代码如下:
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 }
- ModelImporter的使用、在代码中添加动画片段
- Unity3D使用心得(1):ModelImporter的使用、在代码中添加动画片段。
- Unity3d使用心得(1):ModelImporter的使用、在代码中添加动画片段。
- Unity3D使用心得(1):ModelImporter的使用、在代码中添加动画片段。
- 在XCode中添加自定义的代码片段
- 在代码片段中添加时间间隔
- 在VC中获取摄像头视频的代码片段
- 动画代码片段
- ThreadLocal的使用[代码片段]
- iOS --- 在代码中使用NSLayoutConstraint添加AutoLayout的约束条件
- 给VA添加代码片段的快捷方式
- 添加图片代码片段
- Xcode添加代码片段
- 以声明方式在一个标题窗格内添加调色板的代码片段
- 动画状态机--动画片段添加事件
- iOS常用动画代码片段
- NGUI中动画的代码使用
- IOS 图形和简单的动画处理代码片段
- 关于映射网络驱动 网络存在问题不能连接的原因
- POJ2362(DFS)
- 拦截器与过滤器的区别以及他们的执行顺序
- 【HttpClient4.5中文教程】【第一章 :基础】1.1执行请求(二)
- Unity3D Shader入门优秀博客(二)
- ModelImporter的使用、在代码中添加动画片段
- Lua脚本语言入门
- Javaz之Spring
- tmadmin: command not found和tmadmin: error while loading shared libraries: libgpnet.so
- Umeng强制更新
- 最该跳槽的时间点和最热招的十大行业
- 三大数据库分页sql
- 鼠标移动到上面,鼠标的样式改为手型
- 如何在Git 里撤销(几乎)任何操作