示例#1
0
    public static void CallParticleHitHandler(MPWorld world, GameObject obj, ref MPParticle particle)
    {
        var mpcattr = obj.GetComponent <MPColliderAttribute>();

        if (mpcattr)
        {
            mpcattr.particleHitHandler(world, obj, ref particle);
        }
    }
示例#2
0
    void OnHitParticle(ref MPParticle particle)
    {
        m_mpcol.PropagateHit(ref particle);

        const float VelocityThreshold = 12.5f;

        if (particle.speed > VelocityThreshold)
        {
            particle.lifetime = 0.0f;
            Damage(0.25f);
        }
    }
示例#3
0
    void OnHitParticle(ref MPParticle particle)
    {
        m_mpcol.PropagateHit(ref particle);

        const float VelocityThreshold = 12.5f;

        if (particle.speed > VelocityThreshold)
        {
            particle.lifetime = 0.0f;
            Damage(0.25f);
        }
    }
示例#4
0
 public unsafe void PropagateHit(ref MPParticle particle)
 {
     Vector3 f = MPAPI.mpGetIntermediateData(MPWorld.GetCurrentContext())->accel * MPWorld.GetCurrent().m_particle_mass;
     if (m_rigid3d != null)
     {
         m_rigid3d.AddForceAtPosition(f, particle.position);
     }
     if (m_rigid2d != null)
     {
         m_rigid2d.AddForceAtPosition(f, particle.position);
     }
 }
示例#5
0
    public unsafe void PropagateHit(ref MPParticle particle)
    {
        Vector3 f = MPAPI.mpGetIntermediateData(MPWorld.GetCurrentContext())->accel *MPWorld.GetCurrent().m_particle_mass;

        if (m_rigid3d)
        {
            m_rigid3d.AddForceAtPosition(f, particle.position);
        }
        if (m_rigid2d)
        {
            m_rigid2d.AddForceAtPosition(f, particle.position);
        }
    }
示例#6
0
    public static void DefaultParticleHitHandler(MPWorld world, GameObject obj, ref MPParticle particle)
    {
        float   force = world.force;
        Vector3 vel   = particle.velocity3;

        Rigidbody rb3d = obj.GetComponent <Rigidbody>();

        if (rb3d)
        {
            rb3d.AddForceAtPosition(vel * force, particle.position3);
        }

        Rigidbody2D rb2d = obj.GetComponent <Rigidbody2D>();

        if (rb2d)
        {
            rb2d.AddForceAtPosition(vel * force, particle.position3);
        }
    }
示例#7
0
 void Handler(ref MPParticle particle)
 {
     particle.lifetime = 0.0f;
 }
示例#8
0
 void Handler(ref MPParticle particle)
 {
     particle.lifetime = 0.0f;
 }
示例#9
0
文件: MP.cs 项目: stlck/FractalTest
 public static unsafe extern void mpWriteParticles(int context, MPParticle *from);
示例#10
0
文件: MP.cs 项目: stlck/FractalTest
 public static unsafe extern void mpCopyParticles(int context, MPParticle *dst);