public void OnCollisionEnter2D(Collision2D coll)
{
float vol = Mathf.Pow(Mathf.Min(Mathf.Abs(Vector3.Dot(coll.contacts[0].normal, lastVelocity))/maxSpeed, 1), 3);
CollidingObject obj = coll.gameObject.GetComponent<CollidingObject>();
if (coll.gameObject.tag!="Bouncy")
velocity -= 0.95f*Vector3.Project(velocity, coll.contacts[0].normal);
if ((obj!=null && (obj.isMovable || this.isMovable)) && (!collHit.isPlaying || vol>collHit.volume)) {
collHit.Play();
collHit.volume = vol*_collHit.volume;
}
if (obj==null && (!hitSurface.isPlaying || vol>hitSurface.volume)) {
hitSurface.volume = vol*_hitSurface.volume;
hitSurface.Play();
}
if (lastVelocity.magnitude > 8) {
Vector2 hit = coll.contacts [0].point;
GameObject temp = (GameObject)Instantiate (dust, new Vector3(hit.x,hit.y,0), Quaternion.identity);
temp.GetComponent<ParticleSystem> ().startSize = lastVelocity.magnitude/10-.25f;
}
}