protected void Update() { if (m_Active) { // Emit particles. if (m_ParticleSystem) { var emissionCollider = m_EmissionColliders[m_EmissionColliderDistribution[Random.Range(0, m_EmissionColliderWeightSum)]]; var colliderType = emissionCollider.GetType(); if (emissionCollider) { m_ParticleSystem.transform.position = emissionCollider.transform.position; m_ParticleSystem.transform.rotation = emissionCollider.transform.rotation; var particleShapeMoule = m_ParticleSystem.shape; if (colliderType == typeof(BoxCollider)) { var boxCollider = (BoxCollider)emissionCollider; particleShapeMoule.shapeType = ParticleSystemShapeType.BoxShell; particleShapeMoule.position = boxCollider.center; particleShapeMoule.scale = Quaternion.Euler(90.0f, 0.0f, 0.0f) * boxCollider.size; } else if (colliderType == typeof(SphereCollider)) { var sphereCollider = (SphereCollider)emissionCollider; particleShapeMoule.shapeType = ParticleSystemShapeType.Sphere; particleShapeMoule.radiusThickness = 0.0f; particleShapeMoule.position = sphereCollider.center; particleShapeMoule.radius = sphereCollider.radius; } m_Emitted += m_EmissionRate * Time.deltaTime; var emit = Mathf.FloorToInt(m_Emitted); m_ParticleSystem.Emit(emit); m_Emitted -= emit; } } // Check if colliding with player. if (m_ActiveColliders.Count > 0) { if (m_MinifigController) { m_MinifigController.Explode(); } GameOverEvent evt = Events.GameOverEvent; evt.Win = false; EventManager.Broadcast(evt); } if (!audioStarted) { PlayAudio(true); audioStarted = true; } } }
void BreakMinifig() { m_MinifigController.Explode(); GameOverEvent evt = Events.GameOverEvent; evt.Win = false; EventManager.Broadcast(evt); Destroy(this); }