Example #1
0
 //
 // Constructor
 //
 public Particle(ParticleType type = ParticleType.Empty, ParticleMovement movement = ParticleMovement.None)
 {
     this.type                 = type;
     this.movement             = movement;
     lifespanTimer             = new Timer();
     lifespanTimer.OnComplete += StopEmitting;
 }
    // Update is called once per frame
    void Update()
    {
        PauseManager();
        ThemeMusicManager();

        timeText.text = "Time = " + time;
        time          = (int)timerEnd;
        timerEnd     -= Time.deltaTime;

        TimeOver();

        if (isPaused == false)
        {
            timer -= Time.deltaTime;
        }

        if (timer <= 0)
        {
            GameObject       particle = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
            ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
            PScript.velocity = new Vector3(0, 0, 100);
            Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
            rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
            timer          = delay;
        }
    }
Example #3
0
 // Stop emitting this particle
 public void StopEmitting(object sender, EventArgs e)
 {
     this.type     = ParticleType.Empty;
     this.movement = ParticleMovement.None;
     position      = Vector2.Zero;
     velocity      = Vector2.Zero;
     target        = Vector2.Zero;
     lifespanTimer.StopTimer();
 }
Example #4
0
 // Set all necessary fields to set a particle going
 public void ResetParticle(ParticleType type, ParticleMovement movement, Vector2 startPosition, Vector2 velocity, Vector2 target, float lifespan)
 {
     this.type     = type;
     this.movement = movement;
     this.position = startPosition;
     this.velocity = velocity;
     this.target   = target;
     lifespanTimer.SetTimer(lifespan);
     lifespanTimer.StartTimer();
 }
Example #5
0
 // Create a certain amount of particles
 public static void CreateParticles(int number, ParticleType type, ParticleMovement movement, Vector2 position, Vector2 velocity, Vector2 target, float lifespan = 200f)
 {
     for (var i = 0; i < 100 && number > 0; i++)
     {
         if (particles[i].Type == ParticleType.Empty)
         {
             particles[i].ResetParticle(type, movement, position, velocity, target, lifespan);
             number--;
         }
     }
 }
    public void HandleCollision(Transform collided)
    {
        if (rotating)
        {
            return;
        }
        switch (type)
        {
        case 0:
            if (orientation == 0 || orientation == 2)
            {
                if (collided.position.z + 20f < transform.position.z)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
                    PScript.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.z - 20f > transform.position.z)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
                    PScript.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            else if (orientation == 1 || orientation == 3)
            {
                if (collided.position.x - 20f > transform.position.x)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement>();
                    PScript.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x + 20f < transform.position.x)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
                    PScript.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            break;

        case 1:
            if (orientation == 0)
            {
                if (collided.position.z - 20f > transform.position.z)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
                    PScript.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x - 20f > transform.position.x)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
                    PScript.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            else if (orientation == 1)
            {
                if (collided.position.x - 20f > transform.position.x)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement>();
                    PScript.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.z + 20f < transform.position.z)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
                    PScript.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            else if (orientation == 2)
            {
                if (collided.position.z + 20f < transform.position.z)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement>();
                    PScript.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x + 20f < transform.position.x)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
                    PScript.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            else if (orientation == 3)
            {
                if (collided.position.x + 20f < transform.position.x)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement>();
                    PScript.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.z - 20f > transform.position.z)
                {
                    Transform        particle = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript  = (ParticleMovement)particle.gameObject.GetComponent <ParticleMovement> ();
                    PScript.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb = (Rigidbody)particle.GetComponent <Rigidbody>();
                    rb.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            break;

        case 2:
            if (orientation == 0)
            {
                if (collided.position.z - 20f > transform.position.z)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.z + 20f < transform.position.z)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x - 20f > transform.position.x)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            else if (orientation == 1)
            {
                if (collided.position.x - 20f > transform.position.x)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x + 20f < transform.position.x)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.z + 20f < transform.position.z)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            else if (orientation == 2)
            {
                if (collided.position.z - 20f > transform.position.z)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.z + 20f < transform.position.z)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x + 20f < transform.position.x)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            else if (orientation == 3)
            {
                if (collided.position.x - 20f > transform.position.x)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x + 20f < transform.position.x)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.z - 20f > transform.position.z)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement>();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement>();
                    PScript1.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            break;

        case 3:
            if (orientation == 0 || orientation == 1 || orientation == 2 || orientation == 3)
            {
                if (collided.position.z - 20f > transform.position.z)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement> ();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement> ();
                    PScript1.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle2 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript2  = (ParticleMovement)particle2.gameObject.GetComponent <ParticleMovement> ();
                    PScript2.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb2 = (Rigidbody)particle2.GetComponent <Rigidbody>();
                    rb2.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.z + 20f < transform.position.z)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement> ();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement> ();
                    PScript1.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle2 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript2  = (ParticleMovement)particle2.gameObject.GetComponent <ParticleMovement> ();
                    PScript2.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb2 = (Rigidbody)particle2.GetComponent <Rigidbody>();
                    rb2.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x - 20f > transform.position.x)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement> ();
                    PScript0.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement> ();
                    PScript1.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle2 = Instantiate(particlePrefab, transform.position - (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript2  = (ParticleMovement)particle2.gameObject.GetComponent <ParticleMovement> ();
                    PScript2.velocity = new Vector3(-100, 0, 0);
                    Rigidbody rb2 = (Rigidbody)particle2.GetComponent <Rigidbody>();
                    rb2.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
                else if (collided.position.x + 20f < transform.position.x)
                {
                    Transform        particle0 = Instantiate(particlePrefab, transform.position + (100f * Vector3.right), Quaternion.identity);
                    ParticleMovement PScript0  = (ParticleMovement)particle0.gameObject.GetComponent <ParticleMovement> ();
                    PScript0.velocity = new Vector3(100, 0, 0);
                    Rigidbody rb0 = (Rigidbody)particle0.GetComponent <Rigidbody>();
                    rb0.constraints = RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle1 = Instantiate(particlePrefab, transform.position - (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript1  = (ParticleMovement)particle1.gameObject.GetComponent <ParticleMovement> ();
                    PScript1.velocity = new Vector3(0, 0, -100);
                    Rigidbody rb1 = (Rigidbody)particle1.GetComponent <Rigidbody>();
                    rb1.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;

                    Transform        particle2 = Instantiate(particlePrefab, transform.position + (100f * Vector3.forward), Quaternion.identity);
                    ParticleMovement PScript2  = (ParticleMovement)particle2.gameObject.GetComponent <ParticleMovement> ();
                    PScript2.velocity = new Vector3(0, 0, 100);
                    Rigidbody rb2 = (Rigidbody)particle2.GetComponent <Rigidbody>();
                    rb2.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezeRotation;
                }
            }
            break;
        }
    }