Приведенный ниже фрагмент кода позволяет мне анимировать спрайт-лист, который просто отлично прикреплен к плоскости в Unity3D. Спрайт-лист содержит 16 кадров, но в нем есть две последовательности анимации. Приведенный ниже фрагмент кода проходит через таблицу спрайтов, как если бы это была одна последовательность анимации. Есть ли способ использования приведенного ниже кода в качестве примера для переключения между двумя последовательностями анимации, содержащимися в таблице спрайтов? Так, например, воспроизведение кадров от 0 до 7 при загрузке сцены, а затем при нажатии кнопки воспроизведение кадров от 8 до 15?
#pragma strict
var START_Scene : Start_Game;
var colCount : int = 4;
var rowCount : int = 4;
var rowNumber : int = 0;
var colNumber : int = 0;
var totalCells : int = 15;
var fps : int = 10;
var offset : Vector2;
public var index : int;
public var offsetIndex:int;
private var currIndex:int;
public var flip:int = 1;
function Update () {
if(START_Scene.STARTGAME == true) {
SetSpriteANIMATION(colCount,rowCount,rowNumber,colNumber,totalCells,fps);
}
}
function offsetTheIndex(){
offsetIndex = currIndex % totalCells;
}
function SetSpriteANIMATION(colCount : int,rowCount : int,rowNumber : int,colNumber : int,totalCells : int,fps : int){
index = Time.time * fps;
currIndex = index;
index -=offsetIndex;
index = index % totalCells;
var size = Vector2 (1.0 / colCount, 1.0 / rowCount);
var uIndex = index % colCount;
var vIndex = index / colCount;
offset = Vector2 ((uIndex+colNumber) * size.x, (1.0 - size.y) - (vIndex+rowNumber) * size.y);
size.x *=flip;
GetComponent.<Renderer>().material.SetTextureOffset ("_MainTex", offset);
GetComponent.<Renderer>().material.SetTextureScale ("_MainTex", size);
}