博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Unity 动画绘制原理
阅读量:5021 次
发布时间:2019-06-12

本文共 1351 字,大约阅读时间需要 4 分钟。

动画绘制的原理:现在屏幕中确定动画的显示区域,然后将动画中的每一帧图片按固定的时间在这个区域中按顺序切换,从而实现动画的效果。建立文件夹Textures,里面放上图片,此处我截了三张图,风怒的小鸟图片放在该文件夹下,运行结果如下图,点击相关按钮小鸟做相关移动,脚本如下:

 private var anim:Object[];//动画数组

private var nowFram:int;//帧序列

private var mFrameCount:int;//动画帧总数

private var fps:float=5;//限制一秒多少帧

private var time:float=0;//限制帧的时间

var x:int;

var y:int;

var tex:Object[];

 

var bg:Texture2D;//背景图片

function Start () {

    anim=Resources.LoadAll("Textures");//得到帧动画中所有图片资源

    mFrameCount=anim.Length;//得到动画有多少帧

    bg=Resources.Load("next_bg");

}

 

function Update () {

 

}

function OnGUI(){

   //绘制背景图片

   GUI.DrawTexture(Rect(0,0,Screen.width,Screen.height),bg,ScaleMode.StretchToFill,true,0);

   

   //调用DrawAnimation,参数一:动画数组,参数二:动画显示区域

   DrawAnimation(anim,Rect(x,y,32,48));//全局变量x,y确定主角的方向

   if(GUILayout.RepeatButton("up"))

   {

      y-=2;

      tex=anim;

   }

   if(GUILayout.RepeatButton("down"))

   {

      y+=2;

      tex=anim;

   }

   if(GUILayout.RepeatButton("left"))

   {

      x-=2;

      tex=anim;

   }

   if(GUILayout.RepeatButton("right"))

   {

      x+=2;

      tex=anim;

   }

}

 

 

function DrawAnimation(tex:Object[],rect:Rect)

{

   GUILayout.Label("当前动画播放:地"+nowFram+"");

   GUI.DrawTexture(rect,anim[nowFram],ScaleMode.StretchToFill ,true,0);//绘制动画数组

   //计算限制帧时间

   time+=Time.deltaTime;

   if(time>=1.0/fps)

   {

      nowFram++;//帧切换

      time=0;//切换后限制帧的时间归零,从新计算

      if(nowFram>=mFrameCount)

      {

          nowFram=0;//若当前帧到达最后一帧,那么在从第0帧开始播放

      }

   }

}

 

转载于:https://www.cnblogs.com/niguang/archive/2012/11/21/2781469.html

你可能感兴趣的文章
StackExchange.Redis 官方文档(一) Basics
查看>>
nupkg 之破解 nodejs+electron-packager 打包exe的解包
查看>>
Objective-C 使用 C++类
查看>>
浅谈之高级查询over(partition by)
查看>>
Notes: CRM Analytics–BI from a CRM perspective (2)
查看>>
graphite custom functions
查看>>
列出所有的属性键
查看>>
js获取请求地址后面带的参数
查看>>
[原创]使用java批量修改文件编码(ANSI-->UTF-8)
查看>>
设计模式のCompositePattern(组合模式)----结构模式
查看>>
二进制集合枚举子集
查看>>
磁盘管理
查看>>
SAS学习经验总结分享:篇二—input语句
查看>>
UIImage与UIColor互转
查看>>
RotateAnimation详解
查看>>
系统管理玩玩Windows Azure
查看>>
c#匿名方法
查看>>
如何判断链表是否有环
查看>>
【小程序】缓存
查看>>
ssh无密码登陆屌丝指南
查看>>