public void ChangeAnimation(int subAnimation) { if (subAnimation > subAnimations.Length - 1) { return; } currentAnimation = subAnimations[subAnimation]; currenttextureId = currentAnimation.indexBox[0]; isAnimating = true; if (animateOnDelay) { delayCounter = Time.timeSinceLevelLoad + animationDelay; } }
public override void Ignite() { base.Ignite(); currentAnimation = defaultAnimation; if (defaultAnimation.indexBox.Length > 0) { currenttextureId = defaultAnimation.indexBox[0]; } currenttextureId = 0; if (defaultAnimation.mode == AnimationMode.loop) { isAnimating = true; } if (animateOnDelay) { delayCounter = (float)timeSinceIgnition + animationDelay; Debug.Log(delayCounter); } }
protected override void Cycle() { base.Cycle(); if (animateOnDelay) { if (timeSinceIgnition < delayCounter) { return; } } if (!switchedOn) { if (givenPriodicAction) { if (timeSinceIgnition >= igniteAfter) { givenPriodicAction = false; Ignite(); } else { return; } } } if (switchedOn) { if (igniteAfter >= 0) { if (timeSinceIgnition >= killPowerBy) { KillPower(); return; } } } if (!switchedOn) { return; } if (isAnimating) { if (textures.Length == 0) { return; } if (currenttextureId < currentAnimation.indexBox[1] + 0.5f) { currenttextureId += 0.005f * animationSpeed * (GlobalVariables.deltaTime / 0.02f); } else if (currentAnimation.mode == AnimationMode.oneShot) { foreach (var item in currentAnimation.targetObjects) { foreach (var message in currentAnimation.messageAfterAnimation) { item.SendMessage(message, SendMessageOptions.DontRequireReceiver); } } if (defaultAnimation.mode == AnimationMode.loop) { if (currentAnimation.switchToDefault) { currentAnimation = defaultAnimation; currenttextureId = currentAnimation.indexBox[0]; } else { isAnimating = false; } } else { isAnimating = false; } } else { currenttextureId = currentAnimation.indexBox[0]; foreach (var item in currentAnimation.targetObjects) { foreach (var message in currentAnimation.messageAfterAnimation) { item.SendMessage(message, SendMessageOptions.DontRequireReceiver); } } } if ((int)currenttextureId <= textures.Length - 1) { transform.renderer.material.mainTexture = textures[(int)currenttextureId]; } } }