/// <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); } } }
/// <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; } } }