- Home /
Texture Swap + Animated Offset/Tiling
I am (trying) to learn javascript and have come across a challenge that boggles my simple mind. I am trying to combine this script:
//vars for the whole sheet
var colCount : int = 4;
var rowCount : int = 4;
//vars for animation
var rowNumber : int = 0; //Zero Indexed
var colNumber : int = 0; //Zero Indexed
var totalCells : int = 4;
var fps : int = 10;
var offset : Vector2; //Maybe this should be a private var
//Update
function Update () { SetSpriteAnimation(colCount,rowCount,rowNumber,colNumber,totalCells,fps); }
//SetSpriteAnimation
function SetSpriteAnimation(colCount : int,rowCount : int,rowNumber : int,colNumber : int,totalCells : int,fps : int){
// Calculate index
var index : int = Time.time * fps;
// Repeat when exhausting all cells
index = index % totalCells;
// Size of every cell
var size = Vector2 (1.0 / colCount, 1.0 / rowCount);
// split into horizontal and vertical index
var uIndex = index % colCount;
var vIndex = index / colCount;
// build offset
// v coordinate is the bottom of the image in opengl so we need to invert.
offset = Vector2 ((uIndex+colNumber) * size.x, (1.0 - size.y) - (vIndex+rowNumber) * size.y);
renderer.material.SetTextureOffset ("_MainTex", offset);
renderer.material.SetTextureScale ("_MainTex", size);
}
with the unity wiki's texture swap code:
var frames : Texture2D[];
var framesPerSecond = 10.0;
function Update () {
var index : int = Time.time * framesPerSecond;
index = index % frames.Length;
renderer.material.mainTexture = frames[index];
}
And I guess my problem in understanding is, even though I watched some videos on index and modules I don't feel like I understand all the way yet and am not even sure if that is the answer to my question....
Anyways, my question is : How can I set this script up so that when the sprite sheet plays the final frame the texture is swapped to a different texture?
Answer by 3D-Magic-VR · Nov 05, 2011 at 10:36 PM
Hi there, need to check the index value in the first script (Debug.Log (index)), then use a function to use this value and knowing when it reaches the last frame, so you can make the substitution of texture using this function.
Your answer
Follow this Question
Related Questions
Unity 2d Animation from spritesheet: How can I move the character according to the animation? 0 Answers
Using animations in prefabs 1 Answer
How do I animate a 2D sprite? 1 Answer
Expecting EOF found else?? 1 Answer
Attack While Running 1 Answer