跳至主要內容

07-创建动画

AI悦创原创Unity休闲手机游戏开发UnityUnity休闲手机游戏开发Unity大约 8 分钟...约 2286 字

1. 创建动画

1.1 选中我们的青蛙🐸

1.2 点击 Window

这两个都是我们需要的
这两个都是我们需要的

会打开 Animation 的窗口

Animation 窗口
Animation 窗口

上面显示了,如果你想 Frog 创建动画,你需要创建一个 Animator 控制器和 Animator Clip「动画片段」

1.3 创建 Animator

你可以直接点击 create 创建,它会自动创建和控制器。

1.4 我们如何查看动画效果呢?

当然,你现在点击运行游戏,游戏的青蛙现在也是会动的。

但是我们现在还没实现跳跃的动画。

1.5 创建跳跃动画

当然,现在没有之前的 create 的窗口了:

那怎么办呢?

1.6 显示 Animator

我们可以直接拖拽,摆放到你想摆放的位置。

  • 鼠标滚轮可以调整大小;
  • 鼠标滚轮按住,就可以调整位置;

左侧有 Layers,不同的 Layers 执行不同的图层。

不过,在我们的项目中,用不到,就不多讲了。

我们要用到的是 Parameters。

这个参数很重要,涉及一种动画,切换到另外一种动画状态的条件。

我们现在点击运行,你会发现 Frog_idle 一直在运行:

动画状态机
动画状态机

要从 Frog_idle 到 Frog_Jump 需要有一个状态的连线。「橘黄色代表默认执行的」

1.7 添加连线

这个就是把它设为动画图层的当前状态。

不过,我们还是要默认播放 Frog_idle。

我们需要添加的是 Frog_idle 到 Frog_jump:

那我们现在可以点击运行测试一下:

保存你的项目,我们点击 Play 测试一下。

你会发现,现在点击参数 Parameters 的 Jump 就能正常的进行动画的切换了。

那么你会知道,我们是需要代码来调用 Jump 而不是手动点击 Jump 的状态。

如何使用代码切换动画的状态呢?

2. 编写跳跃触发代码

我们要用到 Animator 就要导入我们的 Animator 组件。

// --snip---
public class PlayerController : MonoBehaviour
{
    // 组件一般写在上面
    // 一般用两种方法: 一种就是 public 但是不推荐,因为 public 实现,需要我们自己去 Unity 里面去拖拽
    // private 我们可以实现获取 Frog 自身身上的 Rigidbody2D 组件
    private Rigidbody2D rb;
    private Animator anim;
    // --snip---
    private void Awake()  // 会在 start 之前执行
    {
        rb = GetComponent<Rigidbody2D>();  // 获得自身身上的组件
        anim = GetComponent<Animator>();  // 获取 Animator 组件
    }

    // --snip---
}







 




 




我们可以对我们的代码进行分区:

//--snip---

    #region INPUT 输入回调函数
    public void Jump(InputAction.CallbackContext context)
    {
        //--snip---
    }

    //--snip---

    public void GetTouchPosition(InputAction.CallbackContext context)
    {

    }
    #endregion
}


 











 

这样分区的好处是什么呢?——代码块可以折叠

完美😍折叠。

欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Linux、Web全栈」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQopen in new window

方法二:微信:Jiabcdefh

上次编辑于:
贡献者: AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度