Exemple #1
0
 // When colliding with something
 void OnTriggerEnter(Collider other)
 {
     if (other.CompareTag("Obstacle"))
     {
         Game.GameOver();
     }
     else if (other.CompareTag("Coin"))
     {
         Game.CollectCoin();
         scoreSlider.value += 1;
         // Advance level.
         if (scoreSlider.value >= scoreSlider.maxValue && levelManager.HasNextLevel())
         {
             Game.FullCoins();
             scoreSlider.value = 0;
             levelManager.NextLevel();
             Instantiate(levelExplosion, transform.position, transform.rotation);
         }
         else
         {
             Instantiate(coinExplosion, transform.position, transform.rotation);
         }
         Destroy(other.gameObject);
     }
     else if (!changingState)
     {
         if (other.CompareTag("RightWall") && FloorWall != Floor.Right)
         {
             if (FloorWall == Floor.Bottom)
             {
                 gameObject.transform.Rotate(0.0f, 0.0f, 90.0f);
                 //StartCoroutine(SmoothRotate(90.0f, 1.0f));
             }
             else
             {
                 gameObject.transform.Rotate(0.0f, 0.0f, -90.0f);
             }
             FloorWall = Floor.Right;
             cameraScript.SmoothRotate(FloorWall);
         }
         else if (other.CompareTag("LeftWall") && FloorWall != Floor.Left)
         {
             if (FloorWall == Floor.Top)
             {
                 gameObject.transform.Rotate(0.0f, 0.0f, 90.0f);
             }
             else
             {
                 gameObject.transform.Rotate(0.0f, 0.0f, -90.0f);
             }
             FloorWall = Floor.Left;
             cameraScript.SmoothRotate(FloorWall);
         }
         else if (other.CompareTag("TopWall") && FloorWall != Floor.Top)
         {
             if (FloorWall == Floor.Right)
             {
                 gameObject.transform.Rotate(0.0f, 0.0f, 90.0f);
             }
             else
             {
                 gameObject.transform.Rotate(0.0f, 0.0f, -90.0f);
             }
             FloorWall = Floor.Top;
             cameraScript.SmoothRotate(FloorWall);
         }
         else if (other.CompareTag("BottomWall") && FloorWall != Floor.Bottom)
         {
             if (FloorWall == Floor.Left)
             {
                 gameObject.transform.Rotate(0.0f, 0.0f, 90.0f);
             }
             else
             {
                 gameObject.transform.Rotate(0.0f, 0.0f, -90.0f);
             }
             FloorWall = Floor.Bottom;
             cameraScript.SmoothRotate(FloorWall);
         }
     }
 }