void Start() { currentState = darkCubeState.normal; darkCubeFace = transform.Find("face"); // Blinking blinkTimeDuration = 0.0f; blinkTimeMax = 0.01f; blinkIndex = 0; oldBlinkIndex = 0; playBlinkForward = true; blinkingPlayed = false; // Leer leerTimeDuration = 0.0f; leerTimeMax = 0.02f; leerIndex = 0; oldLeerIndex = 0; playLeerForward = true; leerPlayed = false; longLeerCount = 40; startLeerHold = false; // Laughing laughingTimeDuration = 0.0f; laughingTimeMax = 0.02f; laughingIndex = 0; oldlaughingIndex = 0; playlaughingForward = true; laughingPlayed = false; longlaughingCount = 20; startlaughingHold = false; // Damaged damagedTimeInterval = 0.0f; damagedTimeMax = 2.0f; // Normal normalTimeDuration = 0.0f; normalTimeMax = 2.0f; normalTimeToBlink = false; normalTimeToLeer = false; blinking = new List <Texture>(); leer = new List <Texture>(); laughing = new List <Texture>(); loadTextures(); }
void Update() { oldState = currentState; if (darkCubeCollisionScript.startDamage) { if (currentState != darkCubeState.damaged) { currentState = darkCubeState.damaged; } } if (darkCubeCollisionScript.startLaugh) { if (currentState != darkCubeState.laughing) { currentState = darkCubeState.laughing; } } if (currentState != oldState) { setCurrentFace(normalFace); resetBlinkingAnimation(); resetLeerAnimation(); resetLaughingAnimation(); normalTimeToBlink = false; normalTimeToLeer = false; } // Call correct face animation based on the current state switch (currentState) { case darkCubeState.normal: runNormalState(); break; case darkCubeState.laughing: if (laughingPlayed) { currentState = darkCubeState.normal; } playLaughingAnimation(); break; case darkCubeState.damaged: setCurrentFace(damagedFace); damagedTimeInterval += Time.deltaTime; if (damagedTimeInterval >= damagedTimeMax) { currentState = darkCubeState.normal; setCurrentFace(normalFace); damagedTimeInterval = 0.0f; startDamage = false; } break; case darkCubeState.defeated: break; default: Debug.Log("'" + currentState + "' is not a valid dark cube face state."); break; } }