动画状态转换
第一种方法是设置一个中间状态,从中间状态向其余各种状态切换,且各状态向其他状态需要设置参数
实现动作转移时右键点击Make Transition即可
实现动画转移需要设置条件
点击一种动画到另一种动画的线 ,然后点击加号添加Condition 比如机器人从向左走切换到向右走的条件是MoveX(向左的运动参数)大于0
同时,为了使得动画切换流畅 ,需要将Has Exit Time取消勾选
同时点击Settings,将Transation Duration(转移间隔)设置为0
其他的动画切换也是这样进行
代码支持
direction是角色的朝向,我将direction的数值设置为1或-1
这个根据自己的需要来做
animator.SetFloat("MoveX",direction);
animator.SetFloat("MoveY",direction);
混合树
混合树是更为简单的一种方法
在Animations 文件夹中选定为robot创建Animation Controller后,点击进入
右键点击From New Blend Tree 创建混合树
添加参数并为混合树配置参数
点击右下角加号创建出运动 有几个运动状态就添加几个运动 然后设置好这些运动对于X方向和Y方向的改变(通过Pos X和Pos Y设置 )
然后将预先准备好的动画拖动到Motion中(根据参数确定每个Motion对应的动画)
代码支持
private void PlayMoveAnimation()
{
if (vertical)//垂直轴向动画的控制
{
animator.SetFloat("MoveX",0);
animator.SetFloat("MoveY",direction);
}
else//水平轴向动画的控制
{
animator.SetFloat("MoveY",direction);
animator.SetFloat("MoveY",0);
}
}
void Start()
{
Rigidbody2D1 = GetComponent<Rigidbody2D>();
timer = changeTime;
animator = GetComponent<Animator>();
// animator.SetFloat("MoveX",direction);
// animator.SetFloat("MoveY",direction);
PlayMoveAnimation();
isBroken = true;
}
private void Update()
{
//修复好让机器人停止移动
if (!isBroken)
{
return;
}
timer -= Time.deltaTime;
if (timer < 0)
{
direction = -direction;
PlayMoveAnimation();
timer = changeTime;
}
}
void FixedUpdate()
{
Vector2 position = Rigidbody2D1.position;
if (vertical)//垂直移动
{
position.y += Time.deltaTime * speed*direction;
animator.SetFloat("MoveX",0);
animator.SetFloat("MoveY",direction);
}
else//水平移动
{
position.x += Time.deltaTime * speed*direction;
animator.SetFloat("MoveX",direction);
animator.SetFloat("MoveY",0);
}
//将终点告知刚体组件,让刚体组件来进行位移
Rigidbody2D1.MovePosition(position);
}
1、FixedUpdate()
固定更新方法,和物理相关的操作代码,都要写在此方法中。
固定更新的时间是0.02s,1秒执行50次,可在Edit--->Project Settings--->Time面板中的Fixed Timestep查看。
2、Update()
每帧执行一次。
画面每渲染一次,就是一帧,每帧的时间是不固定的。
————————————————
版权声明:本文为CSDN博主「_Wyhon」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hang981601026/article/details/79640678
为角色配置动画
将设置好的动画控制器拖动到角色的Animator中的Controller即配置完成文章来源:https://www.toymoban.com/news/detail-616956.html
文章来源地址https://www.toymoban.com/news/detail-616956.html
到了这里,关于【Unity2D】角色动画的切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!