예제 #1
0
    public static void ParticleProcessor(MPWorld world, int numParticles, MPParticle *particles)
    {
        for (int i = 0; i < numParticles; ++i)
        {
            if (particles[i].hit == -1 || particles[i].hit == particles[i].hit_prev)
            {
                continue;
            }

            GameObject            col = world.colliders[particles[i].hit];
            RedirectForceToParent cp  = col.GetComponent <RedirectForceToParent>();
            if (cp)
            {
                Transform parent = col.transform.parent;
                if (parent)
                {
                    MPUtils.CallParticleHitHandler(world, parent.gameObject, ref particles[i]);
                }
            }
            else
            {
                MPUtils.CallParticleHitHandler(world, col, ref particles[i]);
            }
        }
    }
예제 #2
0
파일: MP.cs 프로젝트: Pheema/UnitySandBox
 [DllImport("MassParticle")] unsafe public static extern void mpWriteParticles(int context, MPParticle *from);
예제 #3
0
파일: MP.cs 프로젝트: Pheema/UnitySandBox
 [DllImport("MassParticle")] unsafe public static extern void mpCopyParticles(int context, MPParticle *dst);
예제 #4
0
 public static unsafe void DefaultParticleProcessor(MPWorld world, int numParticles, MPParticle *particles)
 {
     for (int i = 0; i < numParticles; ++i)
     {
         if (particles[i].hit != -1 && particles[i].hit != particles[i].hit_prev)
         {
             GameObject          col   = world.colliders[particles[i].hit];
             MPColliderAttribute cattr = col.GetComponent <MPColliderAttribute>();
             if (cattr)
             {
                 cattr.particleHitHandler(world, col, ref particles[i]);
             }
         }
     }
 }
예제 #5
0
 unsafe public static extern void mpWriteParticles(int context, MPParticle *from);
예제 #6
0
 unsafe public static extern void mpCopyParticles(int context, MPParticle *dst);