Unity常用的动画类型

您所在的位置:网站首页 flash动画分为哪几种 Unity常用的动画类型

Unity常用的动画类型

2024-06-12 05:29| 来源: 网络整理| 查看: 265

在Unity中,动画主要有有三种类型:1.序列帧动画:通过快速播放一系列图片产生动画的效果,类似于 Gif一样2.关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一 个整体的动画,角色比较灵活3.骨骼动画:应用最广泛的动画,结合上面两种动画形式,内部骨骼,外部蒙皮。 在我实际开发中,最常用的就是序列帧和骨骼动画了

序列帧:

直接给New Sprite赋予如下脚本。实质上在控制哪个毫秒,精灵New Sprite上放的是那张图片而已。这里没有使用Update()这个父进程去播放动画,利用一个协程对应一个GIF的控制,我认为更合适。 

这里唯一一个注意点是,大家可以看到,原来GIF只有46帧,序列帧大图是按8x8共64帧来配置的,所以注意会有空白,因此,在协程中要求播到46帧,则马上从0开始。

在协程中,停顿时间为1/fps秒,fps为刷新频率,也就是帧数,原始游戏是30,高清时代是60,现在貌似去到75,这个自己定好就行。

实质上本程序来来去去都是spriteRenderer.sprite = sprites[i];控制当前是数组那个元素而已

using UnityEngine; using System.Collections; public class AnimationController : MonoBehaviour { private Coroutine AnimationPlay;//播放协程 private Sprite[] sprites;//被切割的序列图数组 private SpriteRenderer spriteRenderer;//精灵控制器 void Start() { sprites = Resources.LoadAll("aa");//载入资源aa.png spriteRenderer = GetComponent() as SpriteRenderer;//这东西在精灵身上自带的,直接拿就行 } void Update() { } //按钮动作 public void PlayButtonOnClick() { AnimationPlay = StartCoroutine(AnimationPlayThread(30)); } public void StopButtonOnClick() { StopCoroutine(AnimationPlay); } //实质在控制什么时候在精灵上放那张被切割的小图而已 IEnumerator AnimationPlayThread(float fps) { int i = 0; while (true) { if (i < 46) { spriteRenderer.sprite = sprites[i]; i++; } else { i = 0; } yield return new WaitForSeconds(1 / fps); } } }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3