Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        void BreakMinifig()
        {
            m_MinifigController.Explode();

            GameOverEvent evt = Events.GameOverEvent;

            evt.Win = false;
            EventManager.Broadcast(evt);

            Destroy(this);
        }