上期链接:Unity2D游戏制作入门 | 09(之人物动画制作)-CSDN博客
我们上期学习如果制作人物的动画,并配合我们的代码(也是组件了,如果挂载到人物身上它将发挥很大的用途)进行人物的移动,如我们把Jump(跳跃)设定成了注册事件的方式,当我们按下空格的哪一刻,我们立马触发人物跳跃的事件,当然为了模拟真实的物理我们是给人物y轴方向施加一个突然的力从而使人物跳起的,这是代码相关的。然后我们还利用Animator动画控制器进行人物动画的设计的制作,根据一些条件的判断来进行人物动画的切换,当然这些条件和人物控制代码有关一定关系,需要传入外部参数进行更新动画之间判断切换的参数从而使人物在不同状态下展示应有的人物动画,当然我在上期保留了人物走路的特性…这期我们讲下人物跳跃动画的制作,其实有了基础后这些只是在C#和动画控制器的来回操作,多多练习就能熟练了。本期代码我先放下面:
public class PlayerAnimations : MonoBehaviour
{
private Animator anim;//创建好这个组件变量后,如果不知道如何通关代码控制组件,可以去看代码手册
private Rigidbody2D rb;//这个2D不能忽略,不然不报错但是人物跑不起来。
private Player_control playercon;//人物控制
private physicsCheck physicsCheck;
private void Awake()
{
physicsCheck = GetComponent<physicsCheck>();
anim = GetComponent<Animator>();
rb= GetComponent<Rigidbody2D>();
playercon = GetComponent<Player_control>();
}
private void Update()
{
SetAnimatons();//每帧时时检测,判断是否需要切换动画。
}
public void SetAnimatons()//需要做很多动画的切换,我们用这个函数来执行所有的动画切换。
{
anim.SetBool("isGround", physicsCheck.isGround);
anim.SetFloat("velocityX",math.abs(rb.velocity.x));
anim.SetFloat("velocityY",rb.velocity.y);