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); } } }
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; }
private void OnPlayerCollisionEntered(CollisionEventSource source, Collision collision) { float impulse = Mathf.Pow(Mathf.Clamp01(collision.relativeVelocity.magnitude / _maxCollisionSpeed), 2f) * _collisionIntensity; AddImpulse(impulse); }