前言
实现角色的全身异端移动动画同步,即在别人的视角下看到自己的角色是全身的,并且我们奔跑,移动位移都是可以被别人实时同步看到的
一、动画实现
根据待机,行走,奔跑不同的状态设置
首先这个blendtree 上面有一个idle tree是待机状态的;然后有一个walktree 是行走状态的,runtree为奔跑状态
然后开始设置runtree,在此处添加新的blendtree并命名为runtree
然后改下类型
添加motion,把不同的动作状态加入,并修改位置
代码控制如下:
判断是行走还是奔跑的状态
if (characterAnimator != null)
{
characterAnimator.SetFloat("Velocity",
CurrentSpeed * movementDirection.normalized.magnitude,
0.25f,
Time.deltaTime);
tp_CharacterAnimator.SetFloat("Velocity",
CurrentSpeed * movementDirection.normalized.magnitude,
0.25f,
Time.deltaTime);
tp_CharacterAnimator.SetFloat("Movement_X", tmp_Horizontal, 0.25f, Time.deltaTime);
tp_CharacterAnimator.SetFloat("Movement_Y", tmp_Vertical, 0.25f, Time.deltaTime);
}
二、动画同步
关键代码如下:
if (characterAnimator != null)
{
characterAnimator.SetFloat("Velocity",
CurrentSpeed * movementDirection.normalized.magnitude,
0.25f,
Time.deltaTime);
tp_CharacterAnimator.SetFloat("Velocity",
CurrentSpeed * movementDirection.normalized.magnitude,
0.25f,
Time.deltaTime);
tp_CharacterAnimator.SetFloat("Movement_X", tmp_Horizontal, 0.25f, Time.deltaTime);
tp_CharacterAnimator.SetFloat("Movement_Y", tmp_Vertical, 0.25f, Time.deltaTime);
}
}