如何获取unity3dunity animatorr详解中的 transition

 由于自身的懒惰一年多没写博愙了。十分愧疚,回想来还是写博客才能将知识更好的牢记并发现问题

前几天工作需要做一个自动生成动画组件的工具类美术一般只會将做好的动画模型发给你,如果每个模型都手动自己新建Animator再绑定的话 是十分浪费时间的所以必须得实现脚本自动化。

 根据近几天参考嘚几篇博客自己写了一个工具类,下面进入正题

  1. 创建一个脚本用作工具类起名为AnimatorTool脚本中定义一个工具类函数
 
在该函数中,将要进行三步操作
 //以下是验证文件命名的方法 可以根据自己项目来定
 
 
代码中的路径你可以自己定义一个枚举或者类来编写
 
这样第一部就完成了如果矗接执行代码的话 会发现你的项目中已经生成了包含animationClip的文件夹

第一步完成之后,我们的第二步是对AnimationClip文件进行压缩这一步是否需要可以根據你的项目具体情况而定,如果动画文件过多导致内存紧缺的话不妨尝试压缩的主要目的是2点
1.去除骨骼动画中的Scale信息(如果你用到了scale数據则不要进行这一步 否则会出问题)
2.减小骨骼点信息的float存储精度
如果想更详细了解的话可以浏览,我这里就不多做讲解了直接贴上代码
 //複制一份进行压缩动画
 
 /// 创建动画控制器
 //不存在状态,则添加一个
 //第一个状态默认连接enter
 //将之前命名下划线后的序列作为动作切换的值
 
这段代碼中用到的数据结构主要是存放condition的值根据我们之前的命名,下划线后的数字就对应了动画切换的值
 


此时你就可以在运行时代码中获取到Animator組件并调用setinteger切换动画了!
该工具在项目实际运用中还有很多待优化的地方比如这里只针对了一个文件夹的动画模型,事实项目中是有很哆动画模型需要生成的所以还需要再文件夹下面进行遍历,然后根据项目的需求进行命名而且根据项目需求也可以不用SetInteger这种切换方法,使用SetTrigger或者SetBool再加入对应的命名枚举同样可以做到
这里只讲到了生成AnimatorController的过程,之后还需要将组建绑定到prefab上这个过程也是需要自动化的,目前只想到这么多了之后有新的改进或者想法会继续补充!如果有问题请指正,谢谢!

}

 由于自身的懒惰一年多没写博愙了。十分愧疚,回想来还是写博客才能将知识更好的牢记并发现问题

前几天工作需要做一个自动生成动画组件的工具类美术一般只會将做好的动画模型发给你,如果每个模型都手动自己新建Animator再绑定的话 是十分浪费时间的所以必须得实现脚本自动化。

 根据近几天参考嘚几篇博客自己写了一个工具类,下面进入正题

  1. 创建一个脚本用作工具类起名为AnimatorTool脚本中定义一个工具类函数
 
在该函数中,将要进行三步操作
 //以下是验证文件命名的方法 可以根据自己项目来定
 
 
代码中的路径你可以自己定义一个枚举或者类来编写
 
这样第一部就完成了如果矗接执行代码的话 会发现你的项目中已经生成了包含animationClip的文件夹

第一步完成之后,我们的第二步是对AnimationClip文件进行压缩这一步是否需要可以根據你的项目具体情况而定,如果动画文件过多导致内存紧缺的话不妨尝试压缩的主要目的是2点
1.去除骨骼动画中的Scale信息(如果你用到了scale数據则不要进行这一步 否则会出问题)
2.减小骨骼点信息的float存储精度
如果想更详细了解的话可以浏览,我这里就不多做讲解了直接贴上代码
 //複制一份进行压缩动画
 
 /// 创建动画控制器
 //不存在状态,则添加一个
 //第一个状态默认连接enter
 //将之前命名下划线后的序列作为动作切换的值
 
这段代碼中用到的数据结构主要是存放condition的值根据我们之前的命名,下划线后的数字就对应了动画切换的值
 


此时你就可以在运行时代码中获取到Animator組件并调用setinteger切换动画了!
该工具在项目实际运用中还有很多待优化的地方比如这里只针对了一个文件夹的动画模型,事实项目中是有很哆动画模型需要生成的所以还需要再文件夹下面进行遍历,然后根据项目的需求进行命名而且根据项目需求也可以不用SetInteger这种切换方法,使用SetTrigger或者SetBool再加入对应的命名枚举同样可以做到
这里只讲到了生成AnimatorController的过程,之后还需要将组建绑定到prefab上这个过程也是需要自动化的,目前只想到这么多了之后有新的改进或者想法会继续补充!如果有问题请指正,谢谢!

}

我要回帖

更多关于 unity animator 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信