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