求助!Unity中Animator的Getcurrent stateanimatorstateinfo().IsName()的用法~

版权声明:本文为博主原创文章,未经博主允许不得转载。 /qq_/article/details/

Kinematics)即反向动力学,即可以使用场景中的各种物体来控制和影响角色身体部位的运动,一般来说骨骼动画都是传统的从父节点到子节点的带动方式(即正向动力学),而IK则倒过来,由骨骼子节点带动骨骼父节点,具体情况比如人物走路踩到了石头就需要由脚的子节点来带动全身骨骼做出踩到石头的响应。IK可以使人物和场景更加贴合,从而达到更加真实的游戏效果,如果大家玩过《波斯王子》或《刺客信条》系列,应该对主角的攀爬和飞檐走壁的能力印象深刻,这些都是应用了IK,使动画贴合到具体的场景中进行的表现。--摘自网络

index)方法中需要获得position,rotation等参数,则必须声明一个Transform类型的变量,来存储交互对象的transform属性值。可以声明一个public的transform,然后将其他物体拖拽到上面去,也可以是私有的,然后用Find查找。

         2:IK控制器实例:跳箱子,目的是在jump动画播放结尾的时候,我们让人物的脚步位置停留在箱子顶端,来模拟跳上台阶的动作。则需要用到IK绑定。

//第三个参数是哪个身体部位完成指定的IK绑定,最后两个参数是动画片段中指定的动画曲线来设定匹配开始的时间与结束的时间,设置动画参数来获取动画曲线的数值。 //vector是位置匹配的权重,x,y,z三个方向上都进行匹配,转转匹配不进行。

通过动画事件,我们可以在动画过程中调用某个函数实现某种特定功能,如果我们需要在动画过程中调用多个函数,则需要在动画过程多个时间点插入动画事件。如果我们需要在动画中一个连续时间段中调用一个函数,则动画事件无法实现。可以说动画事件是在动画事件线进行离散式的事件调用。如果需要进行连续式的函数调用,则需要借助动画曲线,比如需要一段动画时间播放一段声音。动画曲线是动画剪辑(Animation Clip)的一个属性,  假如,需要在如下Run动画剪辑的中间某段中播放一个声音,则可以将这一段的曲线区别于其他时间段,比如这一段的曲线值均大于0,其他时间段均小于0. 

例子类似于马钻火圈:,人物带有角色控制器,那么在播放动画的时候,角色控制器与cube的碰撞器接触,则使得人物不能穿过正方形的洞,因为虽然人物是横着准备往前跃,但是角色控制器并没有改变形状,那么我们就需要使用动画曲线,来控制动画播放的某个时刻(身体横着的时候),来修改角色控制器形状(变小,从而不与cube碰撞,人物也就跃过孔)。

          3:对jump动画文件设置动画曲线参数:,第一个参数命名得和状态机中参数一致,来达到获取的效果。

//使用动画片段的曲线,来调节角色控制器的大小

  测试:观察到,当按下Q键进行jump播放的时候,人物在身体横着的时候,动画控制器会收缩,使得人物跃过孔洞。

前面简单的学习了用动画系统如何控制角色进行攻击,有了攻击就得有被击打的效果吧,然后就增加了闪避和击飞的动作状态,汗,下载的模型动作个数有限,只能用现用的动作进行尝试了。


增加闪避和倒地的条件:

下面的代码只是做一个简单的尝试,所有都写在一个脚本了,主要是为了熟悉动画系统。

真正开发时,需定义好用到的动作进行配置,程序大多时候只是读配置进行不同的逻辑处理。

在这里被击打的对象就简单命名为foe_1了,然后m_isPlayer设置为false,表示不用进行输入控制。

加载中,请稍候......

我要回帖

更多关于 current state 的文章

 

随机推荐