作者:Vivek Tank
本文节选翻译自Gamasutra社区博客,文中观点仅代表作者本人意见,与本公众号无关。
在Unity3D中使用精灵动画引擎的两种方法
本文将介绍两种简单快捷的方法来制作游戏角色动画。
1、动画和动画控制器
设置场景
添加用于此场景中不同动画的精灵文件夹
创建一个2D 精灵对象,并把空闲动画的第一个精灵分配给它
创建名为AnimationWithScripting的脚本并将其添加到主对象上
现在,按照以下步骤创建不同的动画
(1)把Idle Animation文件夹中所有的精灵拖动到我们的主对象上,一个新动画就做好啦。然后Unity会把这个动画名称命名为Idle。
(2)把Kick Animation文件夹中所有的精灵拖动到我们的主对象上,一个新动画就做好啦。Unity会把这个动画名称命名为Kick。
(3)把Walking Animation文件夹中所有的精灵拖动到我们的主对象上,一个新动画就又做好啦。Unity会把这个动画名称命名为Walk。希这样三个动画就准备好了。
(4)动画控制器会自动添加到主对象中。
(5)现在根据下图设置过渡和触发。
以下转换中要设置的触发器:
脚本代码如下:
- 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”);
- }
- }
- }
复制代码
脚本中内容如下:
现在回到Unity,选择播放场景,空闲动画处于默认播放状态。分别按下I,K和W键,预览动画。
看到你的角色了吗?
耶!你的角色活起来啦!你的角色现在不仅会呼吸,还会跑会跳啦!
2、使用脚本做动画
设置好场景
添加用于此场景中不同动画的精灵文件夹
创建一个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];
- 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];
- 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];
- i++;
- yield return new WaitForSeconds(0.07f);
- yield return 0;
- }
- StartCoroutine(Kick());
- }
- }
复制代码
5. 在Unity检查器的后续列表中添加步行、踢和空闲状态的精灵
脚本中内容如下:
现在回到Unity,选择播放场景,空闲动画处于默认播放状态。现在分别按下I,K和W键,预览动画。
看到你的角色了吗?
对!你的角色又活起来啦!又活蹦乱跳啦!有没有很开心呀?
等等,究竟这两个方法哪个比较好?
emmm,在分析器中检查时,这两种方法的运行方式是相同的。
所以,你完全可以根据自己的需要来选择其中一种方法。
via:西山居技术
- 本文固定链接: https://freemanapp.com/zh/?p=498
- 转载请注明: freeman 于 FreemanApp 发表