unity动画相关

当前动画控制器是在播放哪个动画:

Animator alice;
AnimatorStateInfo currentBaseStage;

int idle = Animator.StringToHash("Base Layer.Idle");
int hit = Animator.StringToHash("Base Layer.Jump");

currentBaseStage=alice.GetCurrentAnimatorStateInfo(0);

if(currentBaseStage.nameHash == hit){//hit动画中

}

//播放指定的动画

alice.SetTrigger("Jump");

//如果一个动画还没播完又要重新开始播,可以考虑的做法如下:

if (currentBaseStage.nameHash == idle && !alice.IsInTransition(0))
{
alice.SetBool("Jump", false);
isHit = false;

}
//hit
if (!isHit &&Input.anyKeyDow&& !alice.IsInTransition(0) && currentBaseStage.nameHash == idle)
{
alice.SetBool("Jump", true);
alice.StartRecording(0);//记录重播开始位置参数是帧数
isHit = true;
//rbody.AddForce (Vector3.up * 50);
}
if (isHit && Input.anyKeyDow && currentBaseStage.nameHash == hit)
{
//二次受击
isPlayBack = true;
alice.StopRecording();//停止记录重播
alice.StartPlayback();//开始重播
alice.playbackTime = 0f;//从0s开始重播
Debug.Log("hit");
}

//设置现在重播时播放的时间
if (isPlayBack)
{
float newPlaybackTime = alice.playbackTime + Time.deltaTime;
if (newPlaybackTime > alice.recorderStopTime) {
newPlaybackTime = 0;
alice.StopPlayback();
isPlayBack = false;
}
alice.playbackTime = newPlaybackTime;
}

时间: 2024-10-12 22:16:51

unity动画相关的相关文章

【Unity编程】Unity动画系统(一)

Unity动画系统 Unity动画系统,也称为"Mecanim",提供了以下功能: 简单的工作流程,设置动画的所有元素,包括对象,角色和属性. 支持导入外部创建的动画片段和使用内置动画编辑器制作的动画片段. 人型动画重新定位,动画角色的运动控制可以被所有的角色模型共享,即角色的外观(SkinedMesh)和运动(Animator)是分离的,它们互相组合之后形成最终的动画. 用于编辑动画状态的的简化工作流程,即动画控制器. 方便预览动画片段,以及片段之间的插值过渡. 这使得动画师可以独立

Unity 动画知识之一

Unity现在已经用的很广泛啦,可是却一直没有什么美术向的教程. 程序用方面的内容在各个论坛都有讨论,但是美术似乎很弱势啊. 明明美术也很需要掌握引擎方面的内容嘛! 山谷里的野百合还有春天呢 我们美术也要出教程! 这次选了本菜鸡比较不那么菜的细分领域?unity3d  3D美术模块 来讲 美术小伙伴们肯定是懒得看那么多字啦,所以我就写的尽量有意思一点吧…… 计划是从入门到住院全部讲完的,但是能不能讲完我也不晓得,挖坑不填什么的最开心了 至于为什么是从入门到住院,因为学了这套东西,你就具备了在项目

Unity动画

Unity 并没有自带建模工具. 3D建模工具 maya, 3dmax, blender Skinned Mesh Renderer Mesh Renderer Mesh Filter Modelling 最好是 T-pose Rigging 建立骨架(Skeleton) 的过程.定义骨头之间的运动关系.是由外部制作的(Maya 3dmax).Unity也没有工具用来做这个事情.Homanoid Character 至少需要15根骨头.臀部应该做为根. Skinning 将骨架绑定到 Mesh

UIImageView帧动画相关属性和方法-15-05-04

UIImageView帧动画相关属性和方法 •@property(nonatomic,copy) NSArray *animationImages; Ø需要播放的序列帧图片数组(里面都是UIImage对象,会按顺序显示里面的图片) Ø •@property(nonatomic) NSTimeInterval animationDuration; Ø帧动画的持续时间 • •@property(nonatomic) NSInteger animationRepeatCount; Ø帧动画的执行次数(

CSS3之动画相关

CSS3动画相关的属性:transform,transition,animation. 变形Transform 语法: transform: rotate | scale | skew | translate |matrix; rotate:旋转,通过指定一个角度对原元素进行2D旋转,正值表示顺时针旋转,负值表示逆时针.默认原点是其中心位置,可以设置transform-origin. scale:缩放,通过指定X和Y方向上的缩放倍数对原元素进行2D缩放. skew:扭曲,通过指定X和Y方向上的斜

Unity 动画系统 Animation 和 Animator的小实例

本文结合一个很简单的动画demo,分别采用2种方法,来对比Animation和Animator的使用方式: 方法1:单独使用Animation 方法2:Animation结合Animator 动画Demo 两个动画.一个是移动,一个是缩放. 实现方式的对比 一.单独Animation来实现 空场景,找到一张Sprite图片,拖到面板中,右键添加Animation组件.如下: 点中这张pig猪的图片,点击Unity的 Window->Animation->Animation.出现如下: 这个时候

Unity 动画(UITweener)、协程(Coroutine)和委托(Delegate)队列管理

问题         前段时间,项目中要做奖励界面UI缓动动画要一个接着一个播放,如:先播放达成星星动画,在播放经验数字增加动画,最后播放奖励物品动画. 当然最笨最直接的方法可以类似成语接龙那样,把下个动画的开始播放都写在上一个动画播放完毕委托中.一般直接的方法是实现起来非常之简单,但这里却不是,会看见代码中有一系列播放完毕回调函数(除了最后一个),显然维护起来是否费劲. 把上面的方法进行简化,把回调函数变为一个:维护一个动画的 List 和当前播放动画的索引 index ,然后再回调函数中只需

Unity动画状态机学习

在Unity4.x之前,动画位移,上楼梯下楼梯等动作都需要自己写模块实现,包括人物转向等等.Unity状态机的出现解决了这个问题.它有一个Apply Root Motion的选项,勾选之后即可应用根骨骼的位移. Unity的状态机大致有如下知识点: 1.Hellow world 2.如何驱动 有时间继续写... Default State 默认状态,在视图里呈现为橙色 Any State 不管处于什么状态,只要条件满足,必然触发. 一般用于死亡的判断

Unity 动画

Unity 并没有自带建模工具. 3D建模工具 maya, 3dmax, blender Skinned Mesh Renderer Mesh Renderer Mesh Filter Modelling 最好是 T-pose Rigging 建立骨架(Skeleton) 的过程.定义骨头之间的运动关系.是由外部制作的(Maya 3dmax).Unity也没有工具用来做这个事情.Homanoid Character 至少需要15根骨头.臀部应该做为根. Skinning 将骨架绑定到 Mesh