void Update() { MeshRenderer mr = GetComponent <MeshRenderer>(); mr.material.SetVector("_GlowColor", glowColor); Vector3 pos = transform.position; pos.x = 9.5f; pos.y = Mathf.Cos(Time.time * 0.5f) * 3.0f; transform.position = pos; TestShooter ts = TestShooter.instance; { //const int num = 52; const int num = 16; CSParticle[] additional = new CSParticle[num]; for (int i = 0; i < additional.Length; ++i) { additional[i].velocity = new Vector3(Random.Range(-2.0f, -0.5f), Random.Range(-1.0f, 1.0f), 0.0f) * 4.0f; additional[i].position = new Vector3(pos.x - 1.4f, pos.y, 0.0f) + additional[i].velocity * 0.1f; } ts.fractions.AddParticles(additional); } }
void PutExplosion(Vector3 pos) { if (m_enable_shockwave) { DSShockwaveManager.AddEntity(pos); } if (m_enable_radialblur) { DSRadialBlurManager.AddEntity(pos); } if (m_enable_particles) { CSParticle[] additional = new CSParticle[1024]; for (int i = 0; i < additional.Length; ++i) { additional[i].position = pos + (new Vector3(R(), R(), R())).normalized * R(0.1f); additional[i].velocity = (new Vector3(R(), R(), R())).normalized * R(20.0f); } m_pset.AddParticles(additional); } if (m_enable_light) { Instantiate(m_light, pos, Quaternion.identity); } }
public void OnHitParticle(ref CSParticle particle) { if (particle.speed > 12.5f) { //OnDamage(1.0f, particle.owner_objid); OnDamage(1.0f, 0); particle.lifetime = 0.0f; } }
void FluidHandler(CSParticle[] particles, int num_particles, List<GPUParticleColliderBase> colliders) { for (int i = 0; i < num_particles; ++i) { int hit = particles[i].hit_objid; if (particles[i].lifetime != 0.0f && hit != -1 && hit < colliders.Count) { GPUParticleColliderBase cscol = colliders[hit]; if (cscol != null && cscol.m_receive_collision) { particles[i].lifetime = 0.0f; ++numGoaled; } } } }
void FractionHandler(CSParticle[] particles, int num_particles, List<GPUParticleColliderBase> colliders) { for (int i = 0; i < num_particles; ++i) { int hit = particles[i].hit_objid; if (particles[i].lifetime != 0.0f && hit != -1 && hit < colliders.Count) { GPUParticleColliderBase cscol = colliders[hit]; if (cscol != null && cscol.m_receive_collision) { TSEntity tge = cscol.GetComponent<TSEntity>(); if (tge) { tge.OnHitParticle(ref particles[i]); } } } } }
void Update() { CameraControl(); if (Input.GetKeyUp(KeyCode.Space)) { showGUI = !showGUI; } { CSParticle[] additional = new CSParticle[particlesParFrame]; Vector3 center = new Vector3(0.0f, 4.0f, 0.0f); for (int i = 0; i < additional.Length; ++i) { Vector3 r = new Vector3(Random.Range(-1.0f, 1.0f), Random.Range(-1.0f, 1.0f), Random.Range(-1.0f, 1.0f)); additional[i].position = center + r * 0.5f; additional[i].velocity = r * 1.5f; } cspset.AddParticles(additional); cspset.m_decelerate = 0.9925f; } }
void Shot() { TestShooter ts = TestShooter.instance; if (ts.gameMode == TestShooter.GameMode.BulletHell) { Vector3 pos = transform.position; Vector3 dir = transform.forward; CSParticle[] additional = new CSParticle[26]; for (int i = 0; i < additional.Length; ++i) { additional[i].position = pos + dir * 0.5f; additional[i].velocity = (dir + new Vector3(Random.Range(-0.5f, 0.5f), Random.Range(-0.5f, 0.5f), 0.0f)) * 10.0f; } ts.fractions.AddParticles(additional); } else if (ts.gameMode == TestShooter.GameMode.Exception) { Instantiate(playerBullet, trans.position + trans.forward.normalized * 1.0f, trans.rotation); } }
void Update() { MeshRenderer mr = GetComponent<MeshRenderer>(); mr.material.SetVector("_GlowColor", glowColor); Vector3 pos = transform.position; pos.x = 9.5f; pos.y = Mathf.Cos(Time.time*0.5f) * 3.0f; transform.position = pos; TestShooter ts = TestShooter.instance; { //const int num = 52; const int num = 16; CSParticle[] additional = new CSParticle[num]; for (int i = 0; i < additional.Length; ++i) { additional[i].velocity = new Vector3(Random.Range(-2.0f, -0.5f), Random.Range(-1.0f, 1.0f), 0.0f) * 4.0f; additional[i].position = new Vector3(pos.x - 1.4f, pos.y, 0.0f) + additional[i].velocity*0.1f; } ts.fractions.AddParticles(additional); } }
//public int GetNumParticles() { return m_world_idata[0].num_active_particles; } public void AddParticles(CSParticle[] particles) { if(enabled) m_particles_to_add.AddRange(particles); }