private void OnChildTriggerEntered(CollisionEventSource child, Collider other)
 {
     if (OnTriggerEntered != null)
     {
         OnTriggerEntered(child, GetComponent <Collider>());
     }
 }
    /* Bubbling */

    private void OnChildCollisionEntered(CollisionEventSource child, Collision collision)
    {
        if (OnCollisionEntered != null)
        {
            OnCollisionEntered(child, collision);
        }
    }
 private void Awake()
 {
     for (int i = 0; i < transform.childCount; i++)
     {
         CollisionEventSource child = transform.GetChild(i).GetComponent <CollisionEventSource>();
         if (child)
         {
             OnChildCreated(child);
         }
     }
 }
예제 #4
0
    private void OnCollisionEntered(CollisionEventSource collisionEventSource, Collision collision)
    {
        Vector3 impactVelocity = collision.relativeVelocity -
                                 Vector3.Project(collision.relativeVelocity, collision.contacts[0].normal);
        float relativeSpeed = impactVelocity.magnitude;

        if (relativeSpeed < _minImpactVelocity)
        {
            return;
        }

//        var asset = _defaultSound;
//        if (_taggedSounds.ContainsKey(collision.collider.tag)) {
//            asset = _taggedSounds[collision.collider.tag];
//        }

        float force = Mathf.Clamp01(relativeSpeed / _maxImpactVelocity);

        _collisionSoundEvent.setParameterValue("force", force);
        _collisionSoundEvent.start();
        //Fmod.PlayOneShot(asset, collision.contacts[0].point);
    }
 private void OnChildDestroyed(CollisionEventSource child)
 {
     child.OnCollisionEntered -= OnChildCollisionEntered;
     child.OnTriggerEntered   -= OnChildTriggerEntered;
     child.OnDestroyed        -= OnChildDestroyed;
 }
예제 #6
0
    private void OnPlayerCollisionEntered(CollisionEventSource source, Collision collision)
    {
        float impulse = Mathf.Pow(Mathf.Clamp01(collision.relativeVelocity.magnitude / _maxCollisionSpeed), 2f) * _collisionIntensity;

        AddImpulse(impulse);
    }