Ejemplo n.º 1
0
    /// <summary>
    /// Make dissapear the asteroids that obstruct the view of the ship
    /// </summary>
    void CheckAsteroidsBetweenCameraAndShip()
    {
        RaycastHit hitInfo;
        Vector3    shipDirection = ship.transform.position - cameraTransform.position;

        if (Physics.Raycast(cameraTransform.position, shipDirection, out hitInfo, shipDirection.magnitude))
        {
            AsteroidCollisionManager acm = hitInfo.transform.GetComponent <AsteroidCollisionManager>();
            if (acm != null)
            {
                acm.gameObject.SetActive(false);
            }
        }
    }
Ejemplo n.º 2
0
 /// <summary>
 /// Activates the asteroid after a division.
 /// </summary>
 /// <param name="index">Index.</param>
 /// <param name="pos">Position.</param>
 public void ActivateAsteroidFromDivision(int index, Vector3 pos)
 {
     for (int i = 0; i < asteroids[index].Count; i++)
     {
         if (!asteroids[index][i].activeInHierarchy)
         {
             asteroids[index][i].SetActive(true);
             asteroids[index][i].transform.position = pos;
             Rigidbody rb = asteroids [index] [i].GetComponent <Rigidbody> ();
             rb.velocity = new Vector3(0.0f, 0.0f, 0.0f);
             addRandomTorque(rb);
             addRandomForce(rb);
             AsteroidCollisionManager asteroidColl = asteroids [index] [i].GetComponent <AsteroidCollisionManager> ();
             asteroidColl.ResetCounter();
             asteroidColl.RestartHealth();
             currentActiveAsteroids++;
             return;
         }
     }
 }