// TODO add shake private IEnumerator SlideDown() { const float slideDuration = 0.6f; float slideTimer = 0f; const float topEndY = 2.11f; const float bottomEndY = -2.97f; float topStartY = _topDoor.position.y; float bottomStartY = _bottomDoor.position.y; // TODO add pause while (slideTimer < slideDuration) { slideTimer += Time.deltaTime; float ratio = Mathf.Clamp(slideTimer / slideDuration, 0f, 1f); float topPosY = topStartY - (topStartY - topEndY) * Mathf.Pow(ratio, 7); float bottomPosY = bottomStartY - (bottomStartY - bottomEndY) * Mathf.Pow(ratio, 7); _topDoor.position = new Vector2(_topDoor.position.x, topPosY); _bottomDoor.position = new Vector2(_bottomDoor.position.x, bottomPosY); yield return(null); } CameraEventListener.CameraShake(); yield return(new WaitForSeconds(0.5f)); CameraEventListener.StopCameraShake(); }
private IEnumerator ShakeScreen(float time) { GetComponent <Rigidbody2D>().velocity = Vector2.up * 0.5f; // Prevents the boss from falling through the floor CameraEventListener.CameraShake(); yield return(StartCoroutine("WaitSeconds", time)); CameraEventListener.StopCameraShake(); }