Hello guys, first question over here, i’m really new with unity(1 and 1/2 weeks), i picked it up because i need to make a mobile app for uni.
So my question is the following, i have this animation (basically it’s a scale and color alpha change), but i only want to run in within a timed interval, i cant put my head arround it, i’m sure i’m missing something easy.
Please check it out! Thanks in advance, Roger
public float alphaStart;
public float alphaEnd;
public float duration;
public float interval;
public float targetscaleMul;
public float force;
public float forceradius;
private float start;
private float actual;
private bool active;
private float lerp;
private Vector3 originalLocalScale=Vector3.zero;
private Vector3 originalLocalScaleaux=Vector3.zero;
private Vector3 targetLocalScale=Vector3.zero;
private float alphaaux;
private Color newc;
void Start () {
start =Time.time;
actual =Time.time;
active=false;
originalLocalScale=transform.localScale;
targetLocalScale=transform.localScale;
targetLocalScale.y=originalLocalScale.y*targetscaleMul;
newc=renderer.material.color;
}
void Update () {
actual=Time.time;
if(active){
fazanim();
}else{
if(actual>=(start+interval)){
fazanim ();
}
}
private void fazanim(){
if(!active){
active=true;
start=Time.time;
}
if(active){
if((actual-start)>=duration*2){
newc.a=alphaStart;
renderer.material.SetColor("_Color",newc);
transform.localScale = originalLocalScale;
start=Time.time;
active=false;
return;
}
lerp = Mathf.PingPong(actual,duration)/duration;
alphaaux=Mathf.Lerp(alphaStart,alphaEnd,lerp);
newc.a=alphaaux;
renderer.material.SetColor("_Color",newc);
transform.localScale = Vector3.Lerp(originalLocalScale, targetLocalScale,lerp);
}
}
what i intended with the interval float is to space out the anim. ex : wait interval. do animation.wait interval . do animation. wait…
but this implementation is basicly skipping the anination the interval ammount