- Home /
Target (or link) and destroy certain particle
Ok , I have ship which fires laser object (taken from laser pool) and this laser object have some special script attached to check what will happend in case of collision, after that this laser object is returned to the pool. There was trail renderer attached on it but because of performance issues (on mobile android) this was replaced with one special emiter object. In laser script start I create laser-like effect gained from emiter which is just stretched billboard particlesystem particle. By this code:
linkToEmitor.particleSystem.Emit(transform.position + _velocity/4.85f,_velocity,15f,5,color);
ParticleSystemRenderer pr = (ParticleSystemRenderer)linkNaEmitorStriel.particleSystem.renderer;
pr.velocityScale = 0.25f;
[I read what was in here][1] and the problem is that in case of collision illustrated on picture: [Picture of scene:][2] [1]: /storage/temp/18160-shot.png [2]: http://docs.unity3d.com/Documentation/ScriptReference/MonoBehaviour.OnParticleCollision.html I dont know how to destroy that one certain particle.
I would also like to find way that will not be performance killer. (My first idea was get all particles by linkToEmitor.GetParticles and target last created and in case of collision destroy it by Destroy() but the better solution would be to keep reference of last created particle and then remove it) (From link above It would not be possible to use in my situation where are over 50 types of possible collision objects in scene and I should rather not to put collision as described in the link)
Is there any easyer solution to do simple trick that will result in: Ship fire laser that on any collision will stop particle effect?