Beispiel #1
0
    void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(ptLaunch, other, ptEvents);

        for (int i = 0; i < ptEvents.Count; i++)
        {
            //SpawnDecal(other.tag, ptEvents[i].normal, ptEvents[i].intersection);
            quadDecal.SpawnDecal(other, ptEvents[i].normal, ptEvents[i].intersection);
        }
    }
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);

        for (int i = 0; i < collisionEvents.Count; i++)
        {
            splatDecalPool.ParticleHit(collisionEvents[i]);
            EmitAtLocation(collisionEvents[i]);
        }
    }
    public void ParticleHitSomething(GameObject other, ParticleSystem system, float scale = 1f)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(system, other, collisionEvents);

        for (int i = 0; i < collisionEvents.Count; ++i)
        {
            SetParticleData(collisionEvents[i].intersection, collisionEvents[i].normal, scale, fudgeFactor);
        }

        DisplayParticles();
    }
    void OnParticleCollision(GameObject other)
    {
        GameObject otherObject = other.transform.root.gameObject;

        ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);
        for (int i = 0; i < collisionEvents.Count; i++)
        {
            SplatterParticles(collisionEvents[i]);
            TestZombieCollision(otherObject, collisionEvents[i]);
        }
    }
Beispiel #5
0
    void OnParticleCollision(GameObject other)
    {
        int numCollisionEvents = ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);

        int i = 0;

        while (i < numCollisionEvents)
        {
            i++;
        }
    }
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(particleSys, other, collisionEvents);
        for (int i = 0; i < collisionEvents.Count; i++)
        {
            potentialPositions.Add(collisionEvents[i].intersection);
            theNormals.Add(collisionEvents[i].normal);

            // Instantiate(prefab, collisionEvents[i].intersection,Quaternion.identity);
        }
    }
Beispiel #7
0
    void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(pSystem, other, collisionEvents);
        ISonarable obj = other.GetComponent <ISonarable>();

        if (obj != null)
        {
            Vector3 hitPos = collisionEvents[0].intersection;
            obj.RPC_HitBySonar(particleSystemColor, hitPos);
        }
    }
Beispiel #8
0
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(particle, other, collisionEvents);

        int count = collisionEvents.Count;

        for (int i = 0; i < count; i++)
        {
            Instantiate(splatPrefab, collisionEvents[i].intersection, Quaternion.Euler(0.0f, 0.0f, Random.Range(0.0f, 360.0f)), splatHolder);
        }
    }
Beispiel #9
0
 void OnParticleCollision(GameObject other)
 {
     if (other.tag == "Paintable")
     {
         ParticlePhysicsExtensions.GetCollisionEvents(m_ParticleSystem, other, pcEvents);
         foreach (ParticleCollisionEvent p in pcEvents)
         {
             Vector3 curPos = new Vector3(p.intersection.x, p.intersection.y - yOffset, p.intersection.z);
             PoolManager.Instance.ReuseObject(splat, curPos, Quaternion.identity);
         }
     }
 }
Beispiel #10
0
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(m_particleSystem, other, collisionEvents);

        foreach (ParticleCollisionEvent collisionEvent in collisionEvents)
        {
            GameObject bloodSplat = Instantiate(bloodSplatPrefab, collisionEvent.intersection, Quaternion.identity) as GameObject;
            bloodSplat.transform.SetParent(bloodParent, true);
            BloodSplat bloodSplatScript = bloodSplat.GetComponent <BloodSplat>();
            bloodSplatScript.Initialize();
        }
    }
Beispiel #11
0
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(glueDropplets, other, glueCollisionEvents);

        for (int i = 0; i < glueCollisionEvents.Count; i++)
        {
            if (glueCollisionEvents[i].intersection != zeroBugFix)
            {
                splashDecalPool.ParticleHit(glueCollisionEvents[i], particleColorGradient);
            }
        }
    }
Beispiel #12
0
    void OnParticleCollision(GameObject other)
    {
        int numCollisionEvents = ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);

        int i = 0;

        while (i < numCollisionEvents)
        {
            dropletDecalPool.ParticleHit(collisionEvents[i], particleColorGradient);
            i++;
        }
    }
Beispiel #13
0
    void OnParticleCollision(GameObject other)
    {
        Debug.Log("on partcile collision");
        ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);

        for (int i = 0; i < collisionEvents.Count; i++)
        {
            // splatDecalPool.ParticleHit (collisionEvents [i], particleColorGradient);
            // EmitAtLocation (collisionEvents[i]);
            Debug.Log("collision event");
        }
    }
Beispiel #14
0
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(particle, other, collisionEvents);

        int count = collisionEvents.Count;

        for (int i = 0; i < count; i++)
        {
            Instantiate(splatPrephab, collisionEvents[i].intersection, Quaternion.Euler(0.0f, 0.0f, Random.Range(0.0f, 360.0f)), splatHolder);
            FindObjectOfType <AudioManager>().Play("BloodSplatter");
        }
    }
Beispiel #15
0
    void OnParticleCollision(GameObject other)
    {
        int numCollisionEvents = ParticlePhysicsExtensions.GetCollisionEvents(particlesystem, other, collisionEvents);

        for (int i = 0; i < numCollisionEvents; i++)
        {
            Vector3    pos = collisionEvents[i].intersection;
            Quaternion rot = Quaternion.LookRotation(Vector3.ProjectOnPlane(Vector3.forward, collisionEvents[i].normal), collisionEvents[i].normal);
            WaveMan.AddEnemy(Instantiate(Waves[currentWave].Enemies[currentEnemy], pos, rot));
            currentEnemy++;
        }
    }
Beispiel #16
0
 // Update is called once per frame
 void OnParticleCollision(GameObject other)
 {
     ParticlePhysicsExtensions.GetCollisionEvents(Mainluncher, other, hits);
     for (int i = 0; i < hits.Count; i++)
     {
         Debug.Log(" hit " + i);
         splatterDecales.shot(hits[i], colorsGradient);
         Debug.Log(" Decale " + i);
         EmitAtPos(hits[i]);
         Debug.Log(" splater " + i);
     }
 }
    void OnParticleCollision(GameObject other)
    {
        for (int i = 0; i < ExplosioncollisionEvents.Count; i++)
        {
            EmitAtLocation(ExplosioncollisionEvents[i]);
        }
        if (ExplosioncollisionEvents.Count < 0)
        {
            return;
        }

        ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, ExplosioncollisionEvents);
    }
    //public IEnumerator moveDown()
    //{
    //	CR_Running = true;
    //	EasyDecal[] decals = new EasyDecal[decalsOnCeiling.Count];
    //	decalsOnCeiling.CopyTo(decals);
    //	foreach (EasyDecal decal in decals)
    //	{
    //		Vector3 originalPosition = decal.GetComponent<DecalPooling>().originalPosition;
    //		yield return new WaitForSeconds(0.01f);
    //		transform.position = Vector3.Lerp(transform.position, new Vector3(transform.position.x, transform.position.y - 0.0001f, transform.position.z), 1);
    //		Debug.Log("Original y-Position: " + originalPosition.y + ", Current y-Position: " + transform.position.y);
    //		if (originalPosition.y - 0.1f < transform.position.y)
    //		{
    //			decalsOnCeiling.Remove(decal);
    //		}
    //	}
    //	if (decalsOnCeiling.Count > 0)
    //	{
    //		StartCoroutine(moveDown());
    //	}
    //	CR_Running = false;
    //	//if ()
    //	//{
    //	//    StartCoroutine(moveDown(easyDecal));
    //	//    Debug.Log("Starting Another Routine!");
    //	//}
    //}

    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);

        for (int i = 0; i < collisionEvents.Count; i++)
        {
            //EmitAtLocation(collisionEvents[i]);

            //Mesh mesh = collisionEvents[i].colliderComponent.GetComponent<Mesh>();

            spawnDecal(collisionEvents[i], other);
        }
    }
Beispiel #19
0
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(splatParticles, other, collisionEvents);
        int count = collisionEvents.Count;

        for (int i = 0; i < count; i++)
        {
            GameObject splat = Instantiate(splatPrefab, collisionEvents[i].intersection, Quaternion.identity) as GameObject;
            //splat.transform.SetParent(splatHolder, true);
            Splat splatScript = splat.GetComponent <Splat>();
            splatScript.Initialized(Splat.SplatLocation.Foreground);
        }
    }
Beispiel #20
0
    private void OnParticleCollision(GameObject other)
    {
        // Instantiate(plane, transform.position, Quaternion.identity);
        // plane.transform.parent = other.transform;
        ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);

        for (int i = 0; i < collisionEvents.Count; i++)
        {
            //print(collisionEvents[i].intersection);
        }

        print("Particles!!");
    }
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(boomEffect, other, collisionEvents);
        if (other.CompareTag("Ground"))
        {
            boomEffect.GetParticles(particle);

            for (int i = 0; i < particle.Length; i++)
            {
                particle[i].remainingLifetime = 0;
            }
        }
    }
Beispiel #22
0
    private void OnParticleCollision(GameObject other)
    {
        List <ParticleCollisionEvent> events;

        events = new List <ParticleCollisionEvent>();
        ParticleSystem m_System = other.GetComponent <ParticleSystem>();

        ParticleSystem.Particle[] m_Particles;
        m_Particles = new ParticleSystem.Particle[m_System.main.maxParticles];
        ParticlePhysicsExtensions.GetCollisionEvents(other.GetComponent <ParticleSystem>(), gameObject, events);
        float minDist           = 1000.0f;
        int   particleId        = -1;
        int   numParticlesAlive = m_System.GetParticles(m_Particles);

        foreach (ParticleCollisionEvent coll in events)
        {
            if (coll.intersection != Vector3.zero)
            {
                for (int i = 0; i < numParticlesAlive; i++)
                {
                    float tmp = ((Vector2)(m_System.transform.TransformPoint(m_Particles[i].position) - coll.intersection)).magnitude;
                    if (tmp < minDist && m_Particles[i].remainingLifetime > 0)
                    {
                        minDist    = tmp;
                        particleId = i;
                    }

                    /*
                     * if (Vector3.Magnitude(m_Particles[i].position - coll.intersection) < 3.5f && m_Particles[i].remainingLifetime > 0)
                     * {
                     *  Debug.Log(Vector3.Magnitude(m_Particles[i].position - coll.intersection));
                     *  Debug.Log("Found Particle");
                     *  m_Particles[i].remainingLifetime = -1;
                     *  waterCount++;
                     *  break;
                     * }
                     */
                }
                if (particleId != -1)
                {
                    m_Particles[particleId].remainingLifetime = -1;
                    manager.waterAmount++;
                    if (!_audio.isPlaying)
                    {
                        _audio.Play();
                    }
                }
            }
        }
        m_System.SetParticles(m_Particles);
    }
Beispiel #23
0
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(bloodSys, other, collisionEvents);

        for (int i = 0; i < collisionEvents.Count; i++)
        {
            Quaternion anglehit = Quaternion.FromToRotation(Vector3.up, collisionEvents[i].normal);


            GameObject tempSys = Instantiate(bloodDecal, collisionEvents[i].intersection, anglehit);
            tempSys.transform.Rotate(Vector3.up, Random.Range(0f, 360f));
            ;            VFXHandler.Instance.AddTemporaryDecal(tempSys);
        }
    }
Beispiel #24
0
    void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);

        var enemy = other.GetComponent <Enemy>();

        enemy.Damage(variant.damage);

        foreach (var cEvent in collisionEvents)
        {
            decalEmitter.GetComponent <ParticleDecalPool>().ParticleHit(particleColorGradient, other.transform.position);
            EmitAtLocation(cEvent);
        }
    }
    private void OnParticleCollision(GameObject other)
    {
        //Debug.Log("collision");
        ParticlePhysicsExtensions.GetCollisionEvents(particles, other, collisionEvents); //this method fills the coliisionEvents list

        for (int i = 0; i < collisionEvents.Count; i++)
        {
            Health health = collisionEvents[i].colliderComponent.gameObject.GetComponent <Health>();
            if (health != null)
            {
                health.TakeDamage(damage);
            }
        }
    }
    void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(particleLauncher, other, collisionEvents);

        for (int i = 0; i < collisionEvents.Count; i++)
        {
            // for performance, apply decal one in every particleCol collisions
            if (i % particleCol == 0)
            {
                splatDecalPool.ParticleHit(collisionEvents[i], particleColorGradient);
                EmitAtLocation(collisionEvents[i]);
            }
        }
    }
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(_splashParticles, other, _collisionEvents);

        int count = _collisionEvents.Count;

        for (int i = 0; i < count; i++)
        {
            GameObject splash = Instantiate(_splashPrefab, _collisionEvents[i].intersection, Quaternion.identity) as GameObject;
            splash.transform.SetParent(_splashHolder, true);
            Splash splashScript = splash.GetComponent <Splash>();
            splashScript.Initialize(Splash.SplashLocation.Ground);
        }
    }
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(flames, other, collisionEvents); //now our list will store a list of collision Events Data

        /*for (int i = 0; i < collisionEvents.Count; i++)
         * {
         *  //EmitAtLocation(collisionEvents[i]);
         * }*/                                                                        //- if i would like to spawn smth on the collision location

        if (other.tag == "Farm")
        {
            Debug.Log("Farm hit");
            other.GetComponent <Farm>().getDamage(damage);
        }
    }
Beispiel #29
0
    /// <summary>
    /// Called when particle collides with other gameobjects
    /// </summary>
    /// <param name="other"></param>
    void OnParticleCollision(GameObject other)
    {
        // Get total number of collision events
        int numCollisionEvents = ParticlePhysicsExtensions.GetCollisionEvents(_particleEmitter, other, _collisionEvents);
        // Reset while loop by setting i to zero
        int i = 0;

        while (i < numCollisionEvents)
        {
            // Create small splatter particles for each collision event
            SmallSplatDecalPool.ParticleHit(_collisionEvents[i], _particleColorGradient);
            // Increment counter variable i for next collision event
            i++;
        }
    }
    private void OnParticleCollision(GameObject other)
    {
        ParticlePhysicsExtensions.GetCollisionEvents(particleSystemCollision, other, collisionEvents);

        for (int i = 0; i < collisionEvents.Count; i++)
        {
            if (splatDecalPool != null)
            {
                splatDecalPool.ParticleHit(collisionEvents[i]);
            }
            //ParticleDecalPool.instance.ParticleHit(collisionEvents[i]);
            //EmitAtLocation(collisionEvents[i]);
        }
        Destroy(bullet.gameObject);
    }