public void setIgnoreLayer(int layerToIgnore) { for (int i = 0; i < cannons.Length; i++) { ParticleBehavior pbCannon = cannons[i].GetComponent <ParticleBehavior>(); pbCannon.setIgnoreLayer(layerToIgnore); } }
public static void SpawnParticle(GameObject _particle, Vector3 pos, Gradient color, Vector3 force, float forceMultiplier) { GameObject particle = Instantiate(_particle, pos, Quaternion.identity); ParticleBehavior particleBehavior = particle.AddComponent(typeof(ParticleBehavior)) as ParticleBehavior; if (color != null) { ParticleSystem.MainModule settings = particle.GetComponent <ParticleSystem>().main; ParticleSystem.MinMaxGradient grad = new ParticleSystem.MinMaxGradient(color); grad.mode = ParticleSystemGradientMode.RandomColor; // then set this grad variable to some particle module settings.startColor = grad; } if (particle.TryGetComponent(out Rigidbody rb)) { rb.AddForce(force * forceMultiplier, ForceMode.Impulse); } }
private void OnCollisionEnter(Collision collision) { // Check for player collision if (collision.gameObject.tag == "Player") { player.GetComponent <PlayerController>().RemoveObserver(this); Collider[] colliders = gameObject.GetComponents <Collider>(); foreach (Collider collider in colliders) { colliderItems.Remove(collider.gameObject); collider.enabled = false; } foreach (Transform child in transform) { child.GetComponent <MeshRenderer>().enabled = false; } if (gameObject.GetComponent <MeshRenderer>() != null) { gameObject.GetComponent <MeshRenderer>().enabled = false; } ParticleBehavior pb = null; switch (itemType) { case ItemType.BREAD: pb = new BreadItem(); break; case ItemType.CAN: pb = new CanItem(); break; case ItemType.CHEESE: pb = new CheeseItem(); break; case ItemType.FRUIT: pb = new FruitItem(); break; case ItemType.LIQUID: pb = new LiquidItem(); break; case ItemType.MEAT: pb = new MeatItem(); break; case ItemType.SHELF: pb = new ShelfItem(); break; } if (gameObject.transform.parent == true) { pb.InstantiateParticles(collision.contacts[0].point, gameObject.transform.parent.gameObject); } else { pb.InstantiateParticles(collision.contacts[0].point, gameObject); } } }