30天轻松学会unity自制游戏-了解动画系统

这篇来让Player加上左右转的动画,先在window视窗上开启Animation->Animatiion(动画系统)&Animator(动画控制系统)来准备动画罗
https://ithelp.ithome.com.tw/upload/images/20210907/2014059867JLAHLNCh.png
把Player里面的Left0~3跟Right0~3一样拖曳到Scene场景上,都会要求存取动画,记得动画存的位置与名称等等需要用到,把刚Left跟Right图像是三角形的拖曳到Player的Animator里面(两个灰色方框是动画控制器别拖曳错罗)
点击Left跟Right动画属性介面有LoopTime预设是打勾请取消打勾(没取消等等就会一直重复左转或右转…)
https://ithelp.ithome.com.tw/upload/images/20210907/20140598wsLwBoMlbe.png
现在加一个Bool(布林值会传回true跟false两种)在Animator左上点Parameters的+号新增两个布林值控制左转跟右转,新增的布林值名称要记好,等等程序会需要用到
(这里的布林值名称等等程序要找一模一样的名称,大小写.符号.空白都会算进去...如果要使用中文也是可以)
https://ithelp.ithome.com.tw/upload/images/20210907/20140598f9WFoeArzB.png
现在要告诉unity甚麽时候要拨放左转或右转的动画,在Player基础动画(预设动画)点右键选Make Transition一条箭头到右转一条到左转,
https://ithelp.ithome.com.tw/upload/images/20210907/20140598dGabGZOsff.png
左转右转一样要点右键,建立一条箭头返回到预设动画,都设定完会有四条线,现在来设定四条动画线的内容
https://ithelp.ithome.com.tw/upload/images/20210907/20140598rw1tQC0tHa.pnghttps://ithelp.ithome.com.tw/upload/images/20210907/20140598RCg3dVOcme.png
点选动画线会可以更改进入动画时间(把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)就会左右转时就会有不同的动画罗~


<<:  Day 7 jinja (2)

>>:  [Day06] Tableau 轻松学 - Tableau Desktop 安装

【Vue】建立 第一个 component | 专案实作

为什麽选择建立 header component 呢? 网站各个页面都会共用 固定版型而且不需要传入...

[Day 1] JavaScript 的运行

在了解 JavaScript 如何运行前,首先要先知道,我们所撰写的 JavaScript 是无法直...

DAY3-排序(二)

Merge Sort 原理:利用将两有序数组合并只需要线性时间的特性将数组分割,合并 思考&...

TypeScript | nerver 型别 心得纪录

今天要了解 interface 进一步的观念,刚好撞到 nerver 观念还不是那麽懂,所以回来补个...

混合模式-30天学会HTML+CSS,制作精美网站

「混合模式」是什麽呢?有用过photoshop的设计师对图片混合模式肯定不陌生,是元素重叠部分的颜色...