您的位置:首页 > 移动开发 > Unity3D

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: