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

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

1、动画和动画控制器

设置场景
 

unity引擎玻璃效果怎么设置 unity引擎制作_i++


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

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

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

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

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

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

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

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

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


unity引擎玻璃效果怎么设置 unity引擎制作_c#_02


以下转换中要设置的触发器:
 


unity引擎玻璃效果怎么设置 unity引擎制作_https_03


脚本代码如下:
 


    1. ScriptToAnimate.cs
    2. using UnityEngine;
    3. using System.Collections;
    4. public class ScriptToAnimate : MonoBehaviour
    5. {
    6.     public Animator animator;
    7.     void Update()
    8.     {
    9.         if (Input.GetKeyDown(KeyCode.I))
    10.         {
    11.             animator.SetTrigger("Idle");
    12.         }
    13.         if (Input.GetKeyDown(KeyCode.K))
    14.         {
    15.             animator.SetTrigger("Kick");
    16.         }
    17.         if (Input.GetKeyDown(KeyCode.W))
    18.         {
    19.             animator.SetTrigger("Walk");
    20.         }
    21.     }
    22. }


    复制代码

    脚本中内容如下:
     

    unity引擎玻璃效果怎么设置 unity引擎制作_c#_04


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

    看到你的角色了吗?

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

    2、使用脚本做动画

    设置好场景
     


    unity引擎玻璃效果怎么设置 unity引擎制作_unity引擎玻璃效果怎么设置_05


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

    创建一个2D 精灵对象,二手游戏账号买号平台并把空闲动画的第一个精灵分配给它

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

    脚本代码如下:

    1. AnimationWithScripting.cs
    2. using UnityEngine;
    3. using System.Collections;
    4. public class AnimationWithScripting : MonoBehaviour
    5. {
    6.     public SpriteRenderer spriteRenderer;
    7.     public Sprite[] walk;
    8.     public Sprite[] idle;
    9.     public Sprite[] kick;
    10.     void Start()
    11.     {
    12.         StartCoroutine(Idle());
    13.     }
    14.     void Update()
    15.     {
    16.         if (Input.GetKeyDown(KeyCode.I))
    17.         {
    18.             StopAllCoroutines();
    19.             StartCoroutine(Idle());
    20.         }
    21.         if (Input.GetKeyDown(KeyCode.K))
    22.         {
    23.             StopAllCoroutines();
    24.             StartCoroutine(Kick());
    25.         }
    26.         if (Input.GetKeyDown(KeyCode.W))
    27.       {
    28.             StopAllCoroutines();
    29.             StartCoroutine(Walk());
    30.         }
    31.     }
    32.     IEnumerator Idle()
    33.     {
    34.         int i;
    35.         i = 0;
    36.         while (i < idle.Length)
    37.         {
    38.             spriteRenderer.sprite = idle[i];
    39.             i++;
    40.             yield return new WaitForSeconds(0.07f);
    41.             yield return 0;
    42.                
    43.         }
    44.         StartCoroutine(Idle());
    45.     }
    46.     IEnumerator Walk()
    47.     {
    48.         int i;
    49.         i = 0;
    50.         while (i < walk.Length)
    51.         {
    52.             spriteRenderer.sprite = walk[i];
    53.             i++;
    54.             yield return new WaitForSeconds(0.07f);
    55.             yield return 0;
    56.         }
    57.         StartCoroutine(Walk());
    58.     }
    59. 
    60.     IEnumerator Kick()
    61.     {
    62.         int i;
    63.         i = 0;
    64.         while (i < kick.Length)
    65.         {
    66.             spriteRenderer.sprite = kick[i];
    67.             i++;
    68.             yield return new WaitForSeconds(0.07f);
    69.             yield return 0;
    70. 
    71.         }
    72.         StartCoroutine(Kick());
    73.     }
    74. }

    复制代码

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


    unity引擎玻璃效果怎么设置 unity引擎制作_i++_06


    脚本中内容如下:
     


    unity引擎玻璃效果怎么设置 unity引擎制作_https_07


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

    看到你的角色了吗?

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

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

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

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