这篇来让Player加上左右转的动画,先在window视窗上开启Animation->Animatiion(动画系统)&Animator(动画控制系统)来准备动画罗
把Player里面的Left0~3跟Right0~3一样拖曳到Scene场景上,都会要求存取动画,记得动画存的位置与名称等等需要用到,把刚Left跟Right图像是三角形的拖曳到Player的Animator里面(两个灰色方框是动画控制器别拖曳错罗)
点击Left跟Right动画属性介面有LoopTime预设是打勾请取消打勾(没取消等等就会一直重复左转或右转…)
现在加一个Bool(布林值会传回true跟false两种)在Animator左上点Parameters的+号新增两个布林值控制左转跟右转,新增的布林值名称要记好,等等程序会需要用到
(这里的布林值名称等等程序要找一模一样的名称,大小写.符号.空白都会算进去...如果要使用中文也是可以)
现在要告诉unity甚麽时候要拨放左转或右转的动画,在Player基础动画(预设动画)点右键选Make Transition一条箭头到右转一条到左转,
左转右转一样要点右键,建立一条箭头返回到预设动画,都设定完会有四条线,现在来设定四条动画线的内容
点选动画线会可以更改进入动画时间(把Has Exit Time取消打勾)不用缓冲直接离开,conditions要设定甚麽状况下要进入此动画Player->Left的动画线(左转true)Right->Player(右转false)四条都设定好就可以去更改一下程序
开启Player的PlayerControl
public class PlayerControl : MonoBehaviour
{
//新增动画控制器叫anim
private Animator anim;
private Rigidbody2D rig;
[SerializeField]float speed = 5f;
float horizontalMove;
private void Start()
{
//取得unity的动画控制器放到anim
anim = GetComponent<Animator>();
rig = GetComponent<Rigidbody2D>();
}
private void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal");
}
private void FixedUpdate()
{
Move();
}
void Move()
{
rig.velocity =
new Vector2(horizontalMove * speed, rig.velocity.y);
//如果水平移动的数值大於0.2的话执行下面的大括号内容
if (horizontalMove > 0.2f)
{
//设定动画控制器名叫right的值为true
anim.SetBool("right",true);
}
//如果水平移动的数值小於-0.2的话执行下面的大括号内容
if (horizontalMove < -0.2f)
{
//设定动画控制器名叫left的值为true
anim.SetBool("left", true);
}
//如果水平移动的数值介於0.2~-0.2之间的话执行下面的大括号内容
if(horizontalMove < 0.2f && horizontalMove > -0.2f)
{
//设定动画控制器名叫right的值为false
anim.SetBool("right", false);
//设定动画控制器名叫left的值为false
anim.SetBool("left", false);
}
}
}
按▶飞机(按左右或AD)就会左右转时就会有不同的动画罗~
>>: [Day06] Tableau 轻松学 - Tableau Desktop 安装
为什麽选择建立 header component 呢? 网站各个页面都会共用 固定版型而且不需要传入...
在了解 JavaScript 如何运行前,首先要先知道,我们所撰写的 JavaScript 是无法直...
Merge Sort 原理:利用将两有序数组合并只需要线性时间的特性将数组分割,合并 思考&...
今天要了解 interface 进一步的观念,刚好撞到 nerver 观念还不是那麽懂,所以回来补个...
「混合模式」是什麽呢?有用过photoshop的设计师对图片混合模式肯定不陌生,是元素重叠部分的颜色...