Esempio n. 1
0
 // Update is called once per frame
 void FixedUpdate()
 {
     if (this.state.Equals(PowerupState.NoPowerup))
     {
         return;
     }
     else if (this.state.Equals(PowerupState.ActivePowerup))
     {
         //Handle rotation to designated coordinates
         if (iterAngle > this.angle)
         {
             this.state     = PowerupState.Waiting;
             this.iterAngle = 0;
         }
         else
         {
             gameObject.transform.Rotate(new Vector3(0, 0, rotationSpeed * Time.deltaTime));
             this.iterAngle += 1;
         }
     }
     else if (this.state.Equals(PowerupState.Waiting))
     {
         if (this.iterWait > 150)
         {
             this.powerUpController.executePowerup();
             this.state    = PowerupState.Refreshing;
             this.iterWait = 0;
         }
         else
         {
             this.iterWait += 1;
         }
     }
     else if (this.state.Equals(PowerupState.Refreshing))
     {
         //Handle restored state
         if (iterAngle > (this.angle - (fullRotation * 2 + 1)))
         {
             powerUpController.DestoryPowerUp();
             this.state     = PowerupState.NoPowerup;
             this.angle     = 0;
             this.iterAngle = 0;
         }
         else
         {
             gameObject.transform.Rotate(new Vector3(0, 0, -rotationSpeed * Time.deltaTime));
             this.iterAngle += 1;
         }
     }
 }