// If we get hit, do we die, or shrink down? void DownSize(Vector3 normalHit) { // Play sound GameObject audioPlayerObject = Instantiate(settings.audioPlayerPrefab, transform.position, Quaternion.identity) as GameObject; AudioPlayer aPlayer = audioPlayerObject.GetComponent <AudioPlayer> (); if (aPlayer) { aPlayer.aSource.clip = settings.asteroidShrink; } if (size <= 1) { scoreCtrl.AddPoints(settings.pointsPerSmallDestroyed); Kill(); Destroy(gameObject); } else { if (size == 2) { scoreCtrl.AddPoints(settings.pointsPerMediumDestroyed); } else if (size == 3) { scoreCtrl.AddPoints(settings.pointsPerSmallDestroyed); } size--; GameObject smallerAsteroid = size == 1 ? settings.smallAsteroid : size == 2 ? settings.mediumAsteroid : settings.largeAsteroid; GameObject spawned; float offset = smallerAsteroid.GetComponent <Collider2D> ().bounds.size.magnitude; for (int i = 0; i < settings.smallerAsteroidsSpawnedOnKill; i++) { Quaternion rot = Quaternion.FromToRotation(Vector3.up, normalHit); Vector3 direction = rot * normalHit; //Quaternion.AngleAxis( i == 0 ? 90f : -90f, normalHit) * normalHit; spawned = Instantiate(smallerAsteroid, transform.position + (2 * offset * (i == 0 ? direction : -direction)), Quaternion.identity) as GameObject; tilingCtrl.TileAnObject(spawned); spawned.GetComponent <Rigidbody2D> ().AddForce(settings.asteroidSpawnForce * (i == 0 ? direction : -direction)); } Kill(); // Shouldn't be necessary, this object should be destroyed in the Kill() function before it gets here. // Just for my own sanity Destroy(gameObject); } }
private void OnTriggerEnter(Collider col) { // Debug.Log("Hit it!!"); if (col.tag == "Player") { if (type == Type.Coin) { audioMngr.CoinsPlay(); GetComponent <ParticleSystem>().Play(); scoreControl.AddPoints(PointsWorth); } renderers[1].enabled = false; gameObject.SetActive(false); } }