在中使用精灵动画引擎的两种方法

本文将介绍两种简单快捷的方法来制作游戏角色动画。

1、动画和动画

设置场景

141757h04fmel6sfxixjjs.jpg
添加用于此场景中不同动画的精灵文件夹

创建一个2D 精灵对象,并把空闲动画的第一个精灵分配给它

创建名为WithScripting的脚本并将其添加到主对象上

现在,按照以下步骤创建不同的动画

(1)把Idle Animation文件夹中所有的精灵拖动到我们的主对象上,一个新动画就做好啦。然后Unity会把这个动画名称命名为Idle。

(2)把Kick Animation文件夹中所有的精灵拖动到我们的主对象上,一个新动画就做好啦。Unity会把这个动画名称命名为Kick。

(3)把Walking Animation文件夹中所有的精灵拖动到我们的主对象上,一个新动画就又做好啦。Unity会把这个动画名称命名为Walk。希这样三个动画就准备好了。

(4)动画会自动添加到主对象中。

(5)现在根据下图设置过渡和触发。

141758vmemw8ohhhvvkzkk.jpg
以下转换中要设置的触发器:

141758iik6rr0mg1g96g0a.png
脚本代码如下:
 

  • ScriptToAnimate.cs
  • using UnityEngine;
  • using System.Collections;
  • public class ScriptToAnimate : MonoBehaviour
  • {
  • public Animator animator;
  • void Update()
  • {
  • if (Input.GetKeyDown(KeyCode.I))
  • {
  • animator.SetTrigger("Idle");
  • }
  • if (Input.GetKeyDown(KeyCode.K))
  • {
  • animator.SetTrigger("Kick");
  • }
  • if (Input.GetKeyDown(KeyCode.W))
  • {
  • animator.SetTrigger("Walk");
  • }
  • }
  • }


[color=rgb(51, 102, 153) !important]复制代码

脚本中内容如下:

141758ntuof15fk553spz1.png
现在回到Unity,选择播放场景,空闲动画处于默认播放状态。分别按下I,K和W键,预览动画。

看到你的角色了吗?

耶!你的角色活起来啦!你的角色现在不仅会呼吸,还会跑会跳啦!

2、使用脚本做动画

设置好场景

141759d2323n833luacuqr.jpg
添加用于此场景中不同动画的精灵文件夹

创建一个2D 精灵对象,并把空闲动画的第一个精灵分配给它

创建名为AnimationWithScripting的脚本,把它连接到主对象上。

脚本代码如下:

 

 

  • AnimationWithScripting.cs
  • using UnityEngine;
  • using System.Collections;
  • public class AnimationWithScripting : MonoBehaviour
  • {
  • public SpriteRenderer spriteRenderer;
  • public Sprite[] walk;
  • public Sprite[] idle;
  • public Sprite[] kick;
  • void Start()
  • {
  • StartCoroutine(Idle());
  • }
  • void Update()
  • {
  • if (Input.GetKeyDown(KeyCode.I))
  • {
  • StopAllCoroutines();
  • StartCoroutine(Idle());
  • }
  • if (Input.GetKeyDown(KeyCode.K))
  • {
  • StopAllCoroutines();
  • StartCoroutine(Kick());
  • }
  • if (Input.GetKeyDown(KeyCode.W))
  • {
  • StopAllCoroutines();
  • StartCoroutine(Walk());
  • }
  • }
  • IEnumerator Idle()
  • {
  • int i;
  • i = 0;
  • while (i < idle.Length)
  • {
  • spriteRenderer.sprite = idle;
  • i++;
  • yield return new WaitForSeconds(0.07f);
  • yield return 0;
  •  
  • }
  • StartCoroutine(Idle());
  • }
  • IEnumerator Walk()
  • {
  • int i;
  • i = 0;
  • while (i < walk.Length)
  • {
  • spriteRenderer.sprite = walk;
  • i++;
  • yield return new WaitForSeconds(0.07f);
  • yield return 0;
  • }
  • StartCoroutine(Walk());
  • }
  •  
  • IEnumerator Kick()
  • {
  • int i;
  • i = 0;
  • while (i < kick.Length)
  • {
  • spriteRenderer.sprite = kick;
  • i++;
  • yield return new WaitForSeconds(0.07f);
  • yield return 0;
  •  
  • }
  • StartCoroutine(Kick());
  • }
  • }

[color=rgb(51, 102, 153) !important]复制代码

5. 在Unity检查器的后续列表中添加步行、踢和空闲状态的精灵

141800v3hecllcpambbefe.jpg
脚本中内容如下:

141801joeazdvvvmytuu8u.jpg
现在回到Unity,选择播放场景,空闲动画处于默认播放状态。现在分别按下I,K和W键,预览动画。

看到你的角色了吗?

对!你的角色又活起来啦!又活蹦乱跳啦!有没有很开心呀?

等等,究竟这两个方法哪个比较好?

emmm,在分析器中检查时,这两种方法的运行方式是相同的。

所以,你完全可以根据自己的需要来选择其中一种方法。

via:西山居技术

锐亚教育

锐亚教育,游戏新闻,游戏行情,游戏投资,游戏发行,游戏开发,游戏论坛,游戏教程