I have a script that changes a texture overtime continuously. When I use it though, the framerate will slow down in pauses after around 20-30 seconds of steady framerate. Here is the script:
var NewScale : boolean = false;
var NewScaleSizeX : float;
var NewScaleSizeY : float;
var MoveTexture1 : boolean = false;
var MoveTexture2 : boolean = false;
var MoveReflection : boolean = false;
var ScalingUp : boolean = false;
var ScalingDown : boolean = false;
var ScalingUp2 : boolean = false;
var ScalingDown2 : boolean = false;
var TimeForward : boolean = true;
var scrollSpeed : float = 0.5;
var scrollSpeed2 : float = -0.5;
var scrollSpeed3 : float = 0.8;
var Active : boolean = true;
var Material1 : Material;
var Material2 : Material;
var Material3 : Material;
var Material4 : Material;
var Material5 : Material;
var Material6 : Material;
var Material7 : Material;
var Material8 : Material;
var Material9 : Material;
var Material10 : Material;
var Material11 : Material;
var Material12 : Material;
var Material13 : Material;
var Material14 : Material;
var Material15 : Material;
var Seconds1 : float;
var Seconds2 : float;
var Seconds3 : float;
var Seconds4 : float;
var Seconds5 : float;
var Seconds6 : float;
var Seconds7 : float;
var Seconds8 : float;
var Seconds9 : float;
var Seconds10 : float;
var Seconds11 : float;
var Seconds12 : float;
var Seconds13 : float;
var Seconds14 : float;
var Seconds15 : float;
var SecondsUntillReverse : float = 3;
private var Starting : boolean = false;
function Awake(){
if(Active == true){
StartCoroutine(“MaterialSequence”);
}
if(MoveTexture2 == true){
StartCoroutine(“TimeAlter”);
StartCoroutine(“TilingSequence”);
}
if(MoveReflection == true){
StartCoroutine(“TimeAlter”);
StartCoroutine(“TilingSequence2”);
}
if(NewScale == true){
Material1.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material1.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material1.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material2.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material2.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material2.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material3.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material3.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material3.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material4.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material4.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material4.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material5.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material5.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material5.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material6.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material6.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material6.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material7.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material7.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material7.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material8.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material8.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material8.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material9.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material9.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material9.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material10.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material10.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material10.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material11.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material11.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material11.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material12.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material12.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material12.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material13.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material13.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material13.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material14.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material14.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material14.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material15.SetTextureScale (“_MainTex”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material15.SetTextureScale (“_BumpMap”, Vector2(NewScaleSizeX, NewScaleSizeY));
Material15.SetTextureScale (“_Cube”, Vector2(NewScaleSizeX, NewScaleSizeY));
}
}
function StartShading(){
if(Starting == true){
MaterialSequence();
}
}
function StartTiling(){
if(Starting == true){
TilingSequence();
TilingSequence2();
}
}
function MaterialSequence(){
Starting = false;
renderer.sharedMaterial = Material1;
yield WaitForSeconds(Seconds1);
renderer.sharedMaterial = Material2;
yield WaitForSeconds(Seconds2);
renderer.sharedMaterial = Material3;
yield WaitForSeconds(Seconds3);
renderer.sharedMaterial = Material4;
yield WaitForSeconds(Seconds4);
renderer.sharedMaterial = Material5;
yield WaitForSeconds(Seconds5);
renderer.sharedMaterial = Material6;
yield WaitForSeconds(Seconds6);
renderer.sharedMaterial = Material7;
yield WaitForSeconds(Seconds7);
renderer.sharedMaterial = Material8;
yield WaitForSeconds(Seconds8);
renderer.sharedMaterial = Material9;
yield WaitForSeconds(Seconds9);
renderer.sharedMaterial = Material10;
yield WaitForSeconds(Seconds10);
renderer.sharedMaterial = Material11;
yield WaitForSeconds(Seconds11);
renderer.sharedMaterial = Material12;
yield WaitForSeconds(Seconds12);
renderer.sharedMaterial = Material13;
yield WaitForSeconds(Seconds13);
renderer.sharedMaterial = Material14;
yield WaitForSeconds(Seconds14);
renderer.sharedMaterial = Material15;
yield WaitForSeconds(Seconds15);
Starting = true;
StartShading();
}
function TilingSequence(){
Starting = false;
if(MoveTexture2 == true){
ScalingUp = true;
yield WaitForSeconds(SecondsUntillReverse);
ScalingUp = false;
ScalingDown = true;
yield WaitForSeconds(SecondsUntillReverse);
ScalingDown = false;
}
Starting = true;
StartTiling();
}
function TilingSequence2(){
Starting = false;
if(MoveReflection == true){
ScalingUp2 = true;
yield WaitForSeconds(SecondsUntillReverse);
ScalingUp2 = false;
ScalingDown2 = true;
yield WaitForSeconds(SecondsUntillReverse);
ScalingDown2 = false;
}
Starting = true;
StartTiling();
}
function TimeAlterStart(){
if(TimeForward == false){
TimeAlter();
}
}
function TimeAlter(){
TimeForward = true;
yield WaitForSeconds(SecondsUntillReverse);
TimeForward = false;
yield WaitForSeconds(SecondsUntillReverse);
TimeAlterStart();
}
function Update () {
var NewTime : float = 0.1;
if (TimeForward == true){
NewTime = Time.deltaTime;
}
if (TimeForward == false){
NewTime = Time.deltaTime;
}
var Tiling1 : float = NewTime * scrollSpeed2;
var Tiling2 : float = NewTime * scrollSpeed3;
var offset : float = Time.time * scrollSpeed;
if(Starting == false){
StopCoroutine(“StartShading”);
}
if(MoveTexture1 == true){
renderer.material.SetTextureOffset (“_MainTex”, Vector2(offset,0));
}
if(ScalingUp == true){
renderer.material.SetTextureScale (“_BumpMap”, Vector2(Tiling1,Tiling1));
}
if(ScalingDown == true){
renderer.material.SetTextureScale (“_BumpMap”, Vector2(Tiling1,Tiling1));
}
if(ScalingUp2 == true){
renderer.material.SetTextureScale (“_Cube”, Vector2(Tiling2,Tiling2));
}
if(ScalingDown2 == true){
renderer.material.SetTextureScale (“_Cube”, Vector2(Tiling2,Tiling2));
}
}