Unity3d 2d动画组件
2013-07-28 21:36
477 查看
var isUsed:boolean=false;
var timeLength:float=0;
var columnSize:int;
var rowSize:int;
var colFrameStart:int;
var rowFrameStart:int;
var totalFrames:int=1;
var framesPerSecond:int;
var totalTime:float=1;
private var myTime:float=0;
private var myTimeLength:float=0;
private var isPlay=true;
private var size:Vector2;
private var offset:Vector2;
private var u:int;
function Update () {
if(isUsed)
{
isUsed=aniSprite(columnSize,rowSize,colFrameStart,rowFrameStart,totalFrames,framesPerSecond,totalTime,true);
}
myTimeLength+=Time.deltaTime;
if(timeLength!=0&&myTimeLength>timeLength){
Destroy(gameObject);
}
}
function aniSprite(columnSize:int,rowSize:int,colFrameStart:int,rowFrameStart:int,totalFrames:int,framesPerSecond:int,totalTime:int,moveDirection:boolean){
myTime+=Time.deltaTime;
if(totalTime!=0&&myTime>totalTime)
{
isPlay=false;
myTime=0;
return isPlay;
}
var index:int=myTime*(framesPerSecond-1);
index=index%totalFrames;
var v=index/columnSize;
if(moveDirection)
{
size=Vector2(1.0/columnSize,1.0/rowSize);
u=index%columnSize;
}else{
size=Vector2(-1.0/columnSize,1.0/rowSize);
u=-index%columnSize;
}
offset=Vector2((u+colFrameStart)*size.x,(1.0-size.y)-(v+rowFrameStart)*size.y);
renderer.material.mainTextureOffset=offset;
renderer.material.mainTextureScale=size;
return true;
}
var timeLength:float=0;
var columnSize:int;
var rowSize:int;
var colFrameStart:int;
var rowFrameStart:int;
var totalFrames:int=1;
var framesPerSecond:int;
var totalTime:float=1;
private var myTime:float=0;
private var myTimeLength:float=0;
private var isPlay=true;
private var size:Vector2;
private var offset:Vector2;
private var u:int;
function Update () {
if(isUsed)
{
isUsed=aniSprite(columnSize,rowSize,colFrameStart,rowFrameStart,totalFrames,framesPerSecond,totalTime,true);
}
myTimeLength+=Time.deltaTime;
if(timeLength!=0&&myTimeLength>timeLength){
Destroy(gameObject);
}
}
function aniSprite(columnSize:int,rowSize:int,colFrameStart:int,rowFrameStart:int,totalFrames:int,framesPerSecond:int,totalTime:int,moveDirection:boolean){
myTime+=Time.deltaTime;
if(totalTime!=0&&myTime>totalTime)
{
isPlay=false;
myTime=0;
return isPlay;
}
var index:int=myTime*(framesPerSecond-1);
index=index%totalFrames;
var v=index/columnSize;
if(moveDirection)
{
size=Vector2(1.0/columnSize,1.0/rowSize);
u=index%columnSize;
}else{
size=Vector2(-1.0/columnSize,1.0/rowSize);
u=-index%columnSize;
}
offset=Vector2((u+colFrameStart)*size.x,(1.0-size.y)-(v+rowFrameStart)*size.y);
renderer.material.mainTextureOffset=offset;
renderer.material.mainTextureScale=size;
return true;
}
相关文章推荐
- Unity3D制作2D精灵动画
- Unity3D 2D动画插件EasyMotion2D (之十一)SpriteAnimationClip Editor
- 在Unity3D中使用Spine2D的骨骼动画
- Unity3D 2D动画插件EasyMotion2D (之十二)BitmapFont
- Unity3D 2D动画插件EasyMotion2D (之十三)BitmapFontRenderer
- Unity3D实现2D人物动画① UGUI&Native2D序列帧动画
- Unity3D Sprite Manager 2D动画
- Unity3D初学之2D动画制
- Unity3D+免费工具开发2D游戏之三:创建人物动画
- 记录 Spine骨骼动画导入unity 步骤[unity3d 4.6.6版本 2d动画]
- Unity3d的2D骨骼动画插件Puppet2D的 基础训练1
- Unity3d-简单的2d序列帧动画编辑
- Unity3d iGUI 运行时添加动画组件
- Unity3D【脚本】获取游戏物体的Animator组件,并且修改动画属性
- 时光煮雨 Unity3D实现2D人物动画① UGUI&Native2D序列帧动画
- Unity3D 2D动画插件EasyMotion2D (之一)Getting Start With EasyMotion2D
- Unity3D中引用Spine2D动画研究学习(一)
- Unity3D 2D动画插件EasyMotion2D (之二)Sprite Asset Viewer