// Update is called once per frame
    void Update()
    {
        switch (currentState)
        {
        case (coverState.Open):

            break;

        case (coverState.Closing):
            openAmount -= Time.deltaTime / openTime;
            if (openAmount <= 0)
            {
                openAmount   = 0;
                currentState = coverState.Closed;
            }
            RotateCovers();
            break;

        case (coverState.Closed):

            break;

        case (coverState.Opening):
            openAmount += Time.deltaTime / openTime;
            if (openAmount >= 1)
            {
                openAmount   = 1;
                currentState = coverState.Open;
            }
            RotateCovers();
            break;
        }
    }
 // Use this for initialization
 void Start()
 {
     audioSource  = GetComponent <AudioSource>();
     openAmount   = 0;
     _covers      = new Cover[covers.Length];
     currentState = coverState.Closed;
     for (int c = 0; c < covers.Length; c++)
     {
         _covers[c]           = new Cover();
         _covers[c].transform = covers[c];
         _covers[c].closedRot = covers[c].transform.rotation;
         _covers[c].transform.Rotate(172, 0, 0);
         _covers[c].openRot = covers[c].transform.rotation;
         _covers[c].transform.Rotate(-172, 0, 0);
     }
     //Open();
 }
 public void Close()
 {
     currentState = coverState.Closing;
     audioSource.Play();
 }
 public void Open()
 {
     currentState = coverState.Opening;
     audioSource.Play();
 }