一、帧动画

1: 美术准备好一个连续动作的离散图片;
2: 程序在准确的时间来切换这个图片;
3: 优点: 简单,速度快;
缺点:资源占用相对过大;

二、frame_anim组件编写

1: 代码里面强制要求加入Image组件;[RequireComponent(typeof(Image))]
2: 帧动画的参数:
(1) Sprite数组;
(2) 间隔时间;
(3) 是否循环播放;
(4) 是否在加载的时候播放;
3: 根据时间让Image组件显示正确的帧;

三 、实例步骤

1.创建一个Canvas

2.对Canvas进行初始化

3.创建一个Image的UI节点作为Canvas的子节点,名字叫bg,拖进背景图片到这个节点中。

4.把帧动画贴图放进一个anim的文件夹中,anim在Resources文件夹下

5.创建一个空节点叫anim,在canvas节点下面。

6.创建一个脚本frame_anim,挂载在anim节点下面。

7.frame_anim脚本内容

using UnityEngine;
using System.Collections;
using UnityEngine.UI;// 我们当前代码强制要求要加入一个Image组件,
// 如果没有Image组件,那么自动加上,如果有就使用;
// 如果你的代码要求这个节点必须挂某个组件,那么
// 使用RequireComponent
[RequireComponent(typeof(Image))]public class frame_anim : MonoBehaviour {// 我们这个动画所需要的画面;public Sprite[] sprite_frames;// 帧动画的间隔时间public float duration = 0.1f;// 是否循环播放public bool is_loop = false;// 是否在加载的时候开始播放;public bool play_onload = false;private float played_time;private bool is_playing = false;private Image img;// Use this for initializationvoid Start () {this.img = this.GetComponent<Image>();if (this.play_onload) {if (this.is_loop) {this.play_loop();}else {this.play_once();}}}// 只播放一次void play_once() {if (this.sprite_frames.Length <= 1) {return;}this.played_time = 0;this.is_playing = true;this.is_loop = false;}// 循环播放void play_loop() {if (this.sprite_frames.Length <= 1) {return;}this.played_time = 0;this.is_playing = true;this.is_loop = true;}// 停止当前的动画播放void stop_anim() {this.is_playing = false;}// Update is called once per framevoid Update () {if (this.is_playing == false) {return;}// float dt = Time.deltaTime;this.played_time += dt;// 向下取整;int index = (int)(this.played_time / this.duration);if (this.is_loop == false) {// 结束了if (index >= this.sprite_frames.Length) { // 停止播放this.is_playing = false;this.played_time = 0;}else {this.img.sprite = this.sprite_frames[index];}}else {// 超过了范围,减掉一个周期while (index >= this.sprite_frames.Length) {this.played_time -= (this.duration * this.sprite_frames.Length);index -= this.sprite_frames.Length;}this.img.sprite = this.sprite_frames[index];}// end
    }
}

8.在Inspetor视图的frame_anim脚本里面展开Sprite_frame,size设置为10,把10张帧图片拖进去

9.在Inspetor视图的frame_anim脚本下勾选play_onload,选择是否勾选is_loop循环播放,设置动画速率Duration,然后点击运行。

关于Unity中的帧动画组件的编写相关推荐

  1. Unity中的Animator动画详解

    Unity中的Animator动画详解 Animator动画导入 Animator动画详解 动画类型选择 Rig面板属性 Mode面板属性 Animation面板属性 动画片段 控制使用 Animat ...

  2. Unity中BVH骨骼动画驱动的可视化理论与实现

    前言 找了很久使用BVH到unity中驱动骨骼动画的代码,但是都不是特别好用,自己以前写过,原理很简单,这里记录一下. 理论 初始姿态 在BVH或者其它骨骼动画中,一般涉及到三种姿势:A-pose,T ...

  3. 让蔡徐坤来教你实现游戏中的帧动画(上)

    一款游戏除了基本功能之外,还需要给玩家更多视觉上的刺激,这个时候就需要用特效来装饰.本文就将介绍 Cocos Creator 的动画系统,除了标准的位移.旋转.缩放动画和序列帧动画以外,这套动画系统还 ...

  4. 让蔡徐坤来教你实现游戏中的帧动画(中)

    在上一篇介绍帧动画的文章中,我们已经介绍了如何给一个节点添加帧动画,忘记的小伙伴可以再去看看:让蔡徐坤来教你实现游戏中的帧动画(上),那么今天我们来给大家讲解一下如何通过脚本控制帧动画. 由于官网对通 ...

  5. 让蔡徐坤来教你实现游戏中的帧动画(下)

    拖了将近一个月,终于把帧动画这部分写完了,新关注的或者已经忘记的小伙伴可以看一下之前写的部分: 让蔡徐坤来教你实现游戏中的帧动画(上) 让蔡徐坤来教你实现游戏中的帧动画(中) ​ 今天这个还是在上一篇 ...

  6. 如何在unity中使用龙骨动画

    龙骨 龙骨是Egret公司的一个用来做动画的软件,本文分享一下如何在Unity2D中使用龙骨导出的2D动画 导出动画 在龙骨中文件->导出,导出动画数据和纹理到Unity的项目中,如果打包了的话 ...

  7. 在Unity中如何制作动画

    场景: 在Unity中如何制作动画 方法 Unity中的动画主要是三种来源: 在Unity引擎中制作动画 从外部工具(如3ds Max.Maya等)导入动画 使用代码制作的动画 下面讨论的主要是前两种 ...

  8. Unity中Animator播放动画后无法修改transform的问题

    本文分享Unity中Animator播放动画后无法修改transform的问题 在使用Animator时, 如果某些动画状态设计到transform的改动, 比如位置, 缩放等, 在默认情况下我们就不 ...

  9. Unity3d中角色的动画脚本的编写

    感谢  wyb314 的分享 1.Unity3D中角色的动画脚本的编写(一) 2. Unity3D中角色的动画脚本的编写(二) 3.Unity3D中角色的动画脚本的编写(三)

最新文章

  1. python3 for mac_PyCharm for Mac-PyCharm Mac版下载 V2018.3.2-PC6苹果网
  2. seo网站优化如何写好文章
  3. open live writer
  4. 高并发系统之降级特技
  5. mysql入门优化_MySQL数据库:MySQL十大优化技巧详解
  6. SQL Sever sa密码丢失
  7. MySQL数据库事物隔离级别
  8. HADOOP docker(六):hive简易使用指南
  9. 为你解惑之WPF经典9问详解
  10. python3.8安装pygame_Python3.8安装Pygame很难?新萌也能轻松搞定安装并运行游戏
  11. Qt qtextstream读取文件
  12. opencv学习记录【6】(codebook
  13. 网站实现QQ登陆功能
  14. DirectX12(D3D12)基础教程(十)——DXR(DirectX Raytracing)基础教程(上)
  15. 高德地图Amap常用功能总结
  16. latex表格中如何画虚线
  17. 二叉搜索树——插入、查找、删除
  18. 电芯容量在前期循环中容量增加_新发现!18650电池钢芯提升电池低温循环性能...
  19. 电子火折子的电路原理
  20. PID控制算法的C语言实现六 抗积分饱和的PID控制算法C语言实现

热门文章

  1. Go语言中的单例模式
  2. PHP中基本符号及使用方法
  3. 基础表比商户对账和汇总多了一笔退款数据
  4. 博客更新内容简单介绍
  5. Spring拓展接口之FactoryBean
  6. Scrapy读取设置文件(settings.py)
  7. springboot项目发布JAR包
  8. 简单易用的IT运维服务器管理程序分享!
  9. 自己动手开发编译器(十)miniSharp语法分析器
  10. [转载] ANTLR——词法分析