I have a large particle system ("Soul") which I want to detect collisions. I have some other particle systems called "Demons" which travel towards the "Soul". If the demons collide with the soul then they should be destroyed and make the soul do some iTween stuff.
My OnParticleCollision in a script attached to the soul looks like this:
However I cannot even get the method to Print "abc".
Both the soul and demons have world particle colliders. The soul has the "Send Collision Message" box ticked. All objects are tagged correctly.
I have tried adding colliders to both objects but with no luck...
Unity does not support particle-to-particle collision. The calculations and SendMessage overhead would be such a performance killer that you wouldn't want to do it anyway, even if you could.
With that said what you could do is use a general collider that is the general shape of your character, this could be a capsule for an oblong shape, or sphere if you aren't adding any directional velocities to your ellipsoid emitter (assuming you are using one and not a mesh emitter).
This will be far more efficient and if done right, you likely won't be able to tell the difference.
use the gameobject that the particles are attached to in order to detect collisions. Assuming your player isnt just a single particle floating about which you can some how control? A little more about how your game is set up would be useful if possible, like equalsequals says unity cant detect particle to particle collisions so you are going to have to use a work around to get the same effect but using different methods, if you tell us how it is set up we can tell you possible work arounds :)
I haven't messed with particles myself, but here is a link to Unity's documentation that should help. Be sure to read the paragraph above the code that describes exactly what you need in order for the collision to register.
If you re-read the paragraph the other user linked to you it says that OnParticleCollision is called when a particle hits a collider. This means that the object you want to be able to collide with needs to have a collider on it. I don't believe Unity's particle system allows single particles to have their own colliders so it seems that getting collisions between particles in this way doesn't work.
You can always code your own particle system using meshes with colliders on them. Particles are pretty fun and easy to program so maybe that would work for you?